这段调用微信公众号客服接口的程序在Framework2.0环境中如何修改源码方可实现?

qq_37057775 2017-03-21 09:12:14
昨天查找的一段调用微信公众号客服接口的程序,其中构造Http对象在Framework2.0环境中不行,HttpRequest对象构造方法也不同,放在Framework2.0环境中如何修改源码方可实现?


Http h = new Http(); //在Fx2.0中需要另写构造对象的程序
HttpRequest req = new HttpRequest(); //Fx2.0的写法需要在构造函数中传参
req.setMethod('POST');
req.setHeader('Accept-Encoding','gzip,deflate');
req.setHeader('Content-Type','text/xml;charset=UTF-8');
req.setHeader('User-Agent','Jakarta Commons-HttpClient/3.1');

String sendMsg = '{ "touser":"ou-37t936RNZEcW0mI75RN2pdxkc", "msgtype":"text", "text": { "content":"测试客服消息" } }';

req.setBody(sendMsg);
req.setEndpoint('https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=bW3aubvd1GVgDZbrO6zv1WGVYIU0QlEhI1J5x_NpbiouxyBc8eufzQQHHyy8cMoZmuQknz-_iEgSB76CggVTgQ’);

String bodyRes = '';

try{
HttpResponse res = h.send(req);
bodyRes = res.getBody();
}
catch(System.CalloutException e) {
System.debug('Callout error: '+ e);
}

);



这段代码比较适用后台发送Json数据到客服接口,很适合处理一些后台程序之后的调用客服接口。
...全文
224 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37057775 2017-03-23
  • 打赏
  • 举报
回复
引用 12 楼 xdashewan 的回复:
[quote=引用 11 楼 qq_37057775 的回复:] 改成这样还是一样的,说到拼接字符串,应该用StringBuilder吧
错误的是红字部分的拼接,你不会C#拼接字符串?[/quote] 拼接字符串的问题其实会解决,就当贵人多忘事吧。
qq_37057775 2017-03-23
  • 打赏
  • 举报
回复
使用StringBuilder拼接时,不能用Server.HtmlEncode 对Json数据转码,但是怎么在传送Json字符串时处理多个引号?
xdashewan 2017-03-23
  • 打赏
  • 举报
回复
引用 11 楼 qq_37057775 的回复:
改成这样还是一样的,说到拼接字符串,应该用StringBuilder吧
错误的是红字部分的拼接,你不会C#拼接字符串?
qq_37057775 2017-03-23
  • 打赏
  • 举报
回复
引用 10 楼 xdashewan 的回复:
[quote=引用 8 楼 qq_37057775 的回复:] 这里再问明一点,用Method="POST"方式,Json数据传值,在这里: String sendmsg = "{ "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }}';
"{ "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }}'; 明显这里拼接字符串有问题,重新调整下[/quote] ' { "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }} ' ; 改成这样还是一样的,说到拼接字符串,应该用StringBuilder吧
xdashewan 2017-03-23
  • 打赏
  • 举报
回复
引用 8 楼 qq_37057775 的回复:
这里再问明一点,用Method="POST"方式,Json数据传值,在这里: String sendmsg = "{ "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }}';
"{ "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }}'; 明显这里拼接字符串有问题,重新调整下
qq_37057775 2017-03-23
  • 打赏
  • 举报
回复
byte[] bytes = System.Text.Encoding.GetEncoding(encoding).GetBytes(requestXML); @以专业开发人员为伍 网上看到这样传输Json数据字符串是否合适?
qq_37057775 2017-03-23
  • 打赏
  • 举报
回复
引用 7 楼 xdashewan 的回复:
[quote=引用 6 楼 qq_37057775 的回复:] 以下这段代码如何设置发送Json数据到客服接口?具体调用HttpWebRequest 什么方法,能讲一下吗 无论如何,先言谢意!
用post方式Method = "POST";,不明白上网查,这类例子多的不能再多了[/quote] 这里再问明一点,用Method="POST"方式,Json数据传值,在这里: String sendmsg = "{ "touser":openid.toString(), "msgtype":"text", "text": { "content":"客服消息" }}'; 是这样传值吗?在系统提示错误单引号里的字符串太多! @以专业开发人员为伍 在网上搜过还是存有疑惑!继续学习补足!
qq_37057775 2017-03-21
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
HttpRequest 是通过 WebRequest.Create 方法创建的 --> HttpWebRequest 是通过 WebRequest.Create 方法创建的 可能你把 HttpWebRequst 的名字记错了。
Http h = new Http(); //在Fx2.0中需要另写构造对象的程序 HttpRequest req = new HttpRequest(); //Fx2.0的写法需要在构造函数中传参 还有Http h=new Http();应该怎么写?使用HttpWebRequest 的写法就需要Http的对象了是吧?
xdashewan 2017-03-21
  • 打赏
  • 举报
回复
用HttpWebRequest
  • 打赏
  • 举报
回复
HttpRequest 是通过 WebRequest.Create 方法创建的 --> HttpWebRequest 是通过 WebRequest.Create 方法创建的 可能你把 HttpWebRequst 的名字记错了。
  • 打赏
  • 举报
回复
HttpRequest 是通过 WebRequest.Create 方法创建的。你可以随便搜一下例子,全都是这样的。
xdashewan 2017-03-21
  • 打赏
  • 举报
回复
引用 6 楼 qq_37057775 的回复:
以下这段代码如何设置发送Json数据到客服接口?具体调用HttpWebRequest 什么方法,能讲一下吗 无论如何,先言谢意!
用post方式Method = "POST";,不明白上网查,这类例子多的不能再多了
qq_37057775 2017-03-21
  • 打赏
  • 举报
回复
以下这段代码如何设置发送Json数据到客服接口?具体调用HttpWebRequest 什么方法,能讲一下吗?@以专业开发人员为伍

try
                            {
                                string responseUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + Session["aToken"].ToString();
                                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(responseUrl);
                                request.Method = "GET";
                                request.ContentType = "text/xml;charset=UTF-8";
                                request.GetResponse();  //获取来自服务器的响应
                                request.Abort();
                            }
                            catch (Exception ex)
                            {
                                Response.Write(ex.Message);
                            }
无论如何,先言谢意!
qq_37057775 2017-03-21
  • 打赏
  • 举报
回复
我自己写了一下,其中的错误望@以专业开发人员为伍 指正!

try
                            {
                                string responseUrl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + Session["aToken"].ToString();
                                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(responseUrl);
                                request.Method = "GET";
                                request.ContentType = "text/xml;charset=UTF-8";
                                request.GetResponse();  //获取来自服务器的响应
                                request.Abort();
                            }
                            catch (Exception ex)
                            {
                                Response.Write(ex.Message);
                            }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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