使用HttpWebRequest Post 方式发送 XML数据 ,从而创建记录

hrj_CodeGod 2017-08-09 03:44:19
首先我的需求是:
彩信API接口:http://emms.10690007.net/api/mt
通过post方式向彩信接口发送一段xml数据,根据xml数据的内容创建一条记录。xml数据中包含了账户,密码,记录主题,记录内容等信息。
现在我的问题是:我的代码并没有起作用,没有实现创建记录的功能。
请大伙帮我看一下代码中有什么问题吗?
代码如下:

class Program
{
static void Main(string[] args)
{
string webURL = "http://emms.10690007.net/api/mt";
//组合xml内容
StringBuilder strBuilder = new StringBuilder();
strBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF - 8\"?>");
strBuilder.Append("<SubmitReq>");
strBuilder.Append("<Command>SUBMIT_MMS_TEMPLATE_REQUEST</Command>");
strBuilder.Append("<SpId>******</SpId>");
strBuilder.Append("<Password>******</Password>");
strBuilder.Append("<TemplateName>6L+Z5piv5LiA5Liq5rWL6K+V5Li76aKY</TemplateName>");
strBuilder.Append("<TemplateType>1</TemplateType>");
strBuilder.Append("<ZipTemplate>6L+Z5piv5LiA5Liq5rWL6K+V5YaF5a65</ZipTemplate>");
strBuilder.Append("</SubmitReq>");
string data = strBuilder.ToString();
//进行utf-8编码
var encoding = Encoding.GetEncoding("utf-8");
byte[] buffer = encoding.GetBytes(data);
//根据webURL创建HttpWebRequest对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(webURL);
request.Method = "post";
//request.Headers.Add("charset:utf-8");
request.ContentLength = buffer.Length;
request.ContentType = "text/xml";

StreamWriter myWriter = null;
try
{
myWriter = new StreamWriter(request.GetRequestStream());
myWriter.Write(data);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
myWriter.Close();
}
//读取服务器返回的信息
HttpWebResponse objResponse = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
string result = string.Empty;
result = sr.ReadToEnd();
Console.WriteLine(result);
}
}
}
...全文
478 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanfei01055 2017-08-09
  • 打赏
  • 举报
回复
最好的办法是自己做一个接收端,自己测试好了再给对方发。
班门弄武 2017-08-09
  • 打赏
  • 举报
回复
问对方要示例代码吧.妥妥的.
雷诺兹 2017-08-09
  • 打赏
  • 举报
回复
我用Postman也是返回的空 这个应该要问服务提供方了
xdashewan 2017-08-09
  • 打赏
  • 举报
回复
引用 3 楼 hrj_CodeGod 的回复:
这就是对方给的API文档中的xml要求
你直接发他的示例也不行?返回值是什么?一般api总有返回值的罗
雷诺兹 2017-08-09
  • 打赏
  • 举报
回复
引用 4 楼 hrj_CodeGod 的回复:
[quote=引用 2 楼 u010717459 的回复:]
myWriter.Write(buffer, 0, buffer.Length);
我是缺这一句吗?要加在哪里?try里面是吗?[/quote] 不用 看错了 没看到new Streamwriter 你用post工具试下啊
hrj_CodeGod 2017-08-09
  • 打赏
  • 举报
回复
而且我加了这一句就会出错了,这是什么情况?
hrj_CodeGod 2017-08-09
  • 打赏
  • 举报
回复
引用 2 楼 u010717459 的回复:
myWriter.Write(buffer, 0, buffer.Length);
我是缺这一句吗?要加在哪里?try里面是吗?
hrj_CodeGod 2017-08-09
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
返回值是什么?utf8字符集是和对方约定的?
这就是对方给的API文档中的xml要求
雷诺兹 2017-08-09
  • 打赏
  • 举报
回复
myWriter.Write(buffer, 0, buffer.Length);
xdashewan 2017-08-09
  • 打赏
  • 举报
回复
返回值是什么?utf8字符集是和对方约定的?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧