欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nodejs request module里的json参数的一个坑 nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

程序员文章站 2022-06-15 22:44:46
...

今天工作的时候遇到一个坑,在客户端用nodejs给服务器发送HTTP请求,服务器老是报错:In the context of Data Services an unknown internal server error occurred

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

经过服务器端调试发现,服务器根本就没有正确解析出这个请求的content-type。在postman里能工作的场景下,正确解析出的content-type是multipart/mixed:

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

而我的nodejs代码里明明指定了这个content-type的啊?

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

经过一行行代码分析,最后发现问题出在第63行的json字段的值。我错误的赋成了true。

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

这个参数起什么作用?调试一下就知道了。如果为true,进入第403行。

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 
 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 
 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

如果请求内部有entity的content-type不是application/x-www-form-urlencoded, 则进入第1293行。

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

safeStringify的实现逻辑就是浏览器原生的JSON.stringify, 把应用程序传入的json对象序列化成字符串。但是我的代码里,传入request module的请求体是一个字符串,而json参数设的又是true,所以逻辑上就不对了。把这个json参数的值改为false后,一切正常。

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 
 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 
 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 

 
nodejs request module里的json参数的一个坑
            
    
    
        nodejsMarketing CloudSAP成都研究院SAP Cloud Platform 

上一篇: nginx:rtmp

下一篇: ffmpeg:视频直播流