Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJs对api重音错误的post请求_Node.js_Rest_Request - Fatal编程技术网

Node.js NodeJs对api重音错误的post请求

Node.js NodeJs对api重音错误的post请求,node.js,rest,request,Node.js,Rest,Request,当我发布带有重音符号的json时(如è…),服务器会发回一个400错误的请求错误。我不知道如何解决这个问题 bodyStr ='{"name":"ééé"}'; //headers var headers = { 'Content-Type': 'application/json', 'Content-Length': bodyStr.length, 'X-Key' : this.xkey }; //http request request({ uri : th

当我发布带有重音符号的json时(如è…),服务器会发回一个400错误的请求错误。我不知道如何解决这个问题

bodyStr ='{"name":"ééé"}';
//headers
var headers = {
    'Content-Type': 'application/json',
    'Content-Length': bodyStr.length,
    'X-Key' : this.xkey
};

//http request
request({
    uri : this.httpHost + path, 
    method: method, 
    headers : headers, 
    body : bodyStr
},  
function (error, response, body) {
    if (!error && response.statusCode < 400) {
        if (typeof successCallback == "function") {
            successCallback(JSON.parse(body), response);
        }
    } else {
        if (typeof errorCallback == "function") {
            errorCallback(error || response.body || response.statusCode, response);
        }
    }
}
);
bodyStr='{“name”:“俎俎”}';
//标题
变量头={
“内容类型”:“应用程序/json”,
“内容长度”:bodyStr.Length,
“X-Key”:此.xkey
};
//http请求
请求({
uri:this.httpHost+路径,
方法:方法,,
标题:标题,
body:bodyStr
},  
功能(错误、响应、正文){
如果(!error&&response.statusCode<400){
if(typeof successCallback==“函数”){
successCallback(JSON.parse(body),response);
}
}否则{
if(typeof errorCallback==“函数”){
errorCallback(error | | response.body | | response.statusCode,response);
}
}
}
);

您实现了RESTful服务吗?关于回复内容,您是否有其他提示

也许在标题
内容类型
中设置字符集(拉丁文1)可以解决此问题:

Content-Type: application/json; charset=iso-8859-1
希望它能帮助你,
Thierry

要解决此问题,您需要使用类似iconv-lite()的模块将字符串转换为utf-8,如下所示:

var iconv = require('iconv-lite');
bodyStr = iconv.encode(bodyStr, 'utf-8');

谢谢你的回答。但我总是犯同样的错误,当我在《邮递员》中尝试同样的请求时,它会完美地工作。。。我无法访问RESTful服务,也没有太多信息。也许您可以尝试使用iconv lite(,)对数据进行编码,以便在发送数据之前发送到utf-8。