2 kuku19940613 kuku19940613 于 2016.03.07 10:38 提问

Nodejs如何发送中文xml的post请求

最近在接微信支付的sdk。需要向微信服务器post一个xml,xml中如果不带中文的话微信那边是可以正确识别的。但是如果带了中文微信那边就报xml格式错误。

发送的xml:

 <xml>
    <appid><![CDATA[wx6e7c4258200000000]]></appid>
    <attach><![CDATA[test]]></attach>
    <body><![CDATA[jsapitest]]></body>
    <mch_id>1318100000</mch_id>
    <nonce_str><![CDATA[dv9k09ewgkyjsjo]]></nonce_str>
    <notify_url><![CDATA[http://wx.test.com/payCallback/]]></notify_url>
    <openid><![CDATA[ofBzdvpT6EhFjmCRmSCPQ9JhFnOQ]]></openid>
    <out_trade_no><![CDATA[56dce48af3609a005dabf5b5]]></out_trade_no>
    <spbill_create_ip><![CDATA[222.211.174.254]]></spbill_create_ip>
    <total_fee>5800</total_fee>
    <trade_type><![CDATA[JSAPI]]></trade_type>
    <sign><![CDATA[6849B595D0C35598055EA9D07F1506A8]]></sign>
</xml>

像这样不带中文的微信那边能正确识别并返回正确的信息。但是如果带中文的话。
微信会返回:

 <xml>
 <return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[XML格式错误]]></return_msg>
</xml>

尝试过在headers里面加charset=utf-8。尝试过在xml里面指定编码。都没有效果。
那么问题来了。请教怎么才能让微信正确识别中文xml的post请求呢

1个回答

devmiao
devmiao   Ds   Rxr 2016.03.08 12:51
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
如何让 Node-express 支持 XML 形式的 POST 请求?
express 是基于 connect 开发的,使用 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-www-form-urlencoded, 以及 multipart/form-data。 也就是说不支持对 XML 形式的包体进行解析。 但是以 XML 格式作为接口数据交换还是有人在用,比如 Microsoft 的 
使用nodejs发起get或post请求抓取网页内容,支持中文编码
使用nodejs发起get或post请求抓取网页内容,支持中文编码(GBK、GB2312)、设置请求超时时间、http或https协议,支持post发送json数据,请求数据编码格式支持指定等。 1. [代码]单元测试:     跳至 [1] [2] [全屏预览] ? 1 2 3 4 5 6 7 8 9
nodejs发送post请求
var http = require('http'); var querystring =require('querystring'); var post_data = querystring.stringify({ 'wifi_name':'user', 'code':'123456' }); var options = { hostname:'www.myserver.com', //
nodejs之get/post请求的几种方式
1.用form表单的方法: (1)get方法 前端代码:  账号:      密码:       服务器代码: 用get方法首先要配置json文件,在command中输入命令npm-init ,然后要安装所需要的express模块,还需要在文件夹里面创建一个放置静态资源的文件夹(wwwroot),然后代码如下: var express = require('ex
nodejs的http.request使用post方式提交数据请求
https://www.cnblogs.com/sunwubin/archive/2013/11/09/3416246.html 官方api文档 http://nodejs.org/docs/v0.6.1/api/http.html#http.request虽然也有POST例子,但是并不完整。 直接上代码:http_post.js 1 2 3 4
Nodejs使用post发送请求与批量发送请求
使用nodejs无论是搭建服务端还是发送请求都是非常的容易,简单几行代码就能搞定服务端如: var http = require("http"); http.createServer(function(request, response) { console.log('request received'); response.writeHea
Http post 请求发送 xml
ChannelDistributor.xml 内容如下: yisou abcd1234 10010000 00 1).HttpClient发送Post请求,内容格式为xml,并获取响应内容 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArr
nodejs http 发送get,post请求
GET请求  var http = require('http'); var qs = require('querystring'); var data = { a: 123, time: new Date().getTime()};//这是需要提交的数据 var content = qs.stringify(data)
nodejs使用request发送post请求
/** * Created by 斗酒 on 2018/1/16. */ var request = require('request'); var url="地址"; var requestData="上送的数据"; httprequest(url,requestData); function httprequest(url,data){ request({ ur
nodejs实现post和批量post发送请求的功能
使用nodejs的http模块来完成post请求,函数为 http.request(options, callback)#