背景:
server: python http.server 见 https://blog.csdn.net/a1368783069/article/details/87359881
client : node.js request
client 在请求 server时,返回结果解析错误。
server.py
import json
import http.server
import socketserver
from urllib.parse import urlparse, parse_qs
PORT = 7700
class HandleServer(http.server.BaseHTTPRequestHandler):
def do_GET(self):
print(self.client_address)
print(self.headers)
query = urlparse(self.path)
returncode, msg = 0, "success"
if query.path.strip("/") == urlparse("/parse/").path.strip("/") :
params = parse_qs(query.query)
q = params("q",[""])[0]
else:
returncode, msg = 1000, "url path should be parse"
output = {"returncode": returncode, "message": msg}
self.wfile.write(json.dumps(output).encode("utf-8"))
handler = HandleServer
with socketserver.TCPServer(("", PORT), handler) as httpd:
print("server starting..", PORT)
httpd.serve_forever()
client.js
var request = require('request');
var qs = require('querystring')
var tempData = "test"
var data = qs.stringify({q: tempData })
request({
url: 'http://127.0.0.1:7700/parse?' +data,
method: 'GET',
}, function(error, resp, body){
console.log(error);
console.log(resp)
console.log(body);
});
启动服务 python3 server.py
执行请求 node client.js
然后就报错 :
{ Error: socket hang up
at createHangUpError (_http_client.js:313:15)
at Socket.socketOnEnd (_http_client.js:416:23)
at Socket.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1090:12)
at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }
根据查到的资料,是由于 server 再返回的数据头部 : Content-type 为 json。 应该改为: text/html
即,在server.py 中的 self.wfile.write 这行前面加上:
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
同时, Content-type
的开头为大写, 而不是 content-type 。
参考资料:
http server. empty reply on GET request with not url encoded GET-param #6295
https://github.com/nodejs/node/issues/6295
Flow对React的支持与上文所述的基本上大同小异。各位可以移步官网细看。
书写调查报告的格式字体要求第一部分必须包括(空一行) 标题(黑体、居中、三号字) 导语或摘要 (四号黑体) (空一格)打印内容(四号宋体,...
基于NB-IoT的智慧路灯监控系统(手机应用开发)2019年09月10日 12:29:35不脱发的程序猿阅读数 1038更多分类专栏:NB-IoT项目实践版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/m0_38106923/article/details/10018...
一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的Python是2.6版本,难怪一直连不上网。于是,继续百度google,进行安装,后来又出现问题...在此开篇记录一下,权当备忘。查看python的版本#python -V
0操作成功完成。1功能错误。2系统找不到指定的文件。3系统找不到指定的路径。4系统无法打开文件。5拒绝访问。6句柄无效。7存储控制块被损坏。8存储空间不足,无法处理此命令。9存储控制块地址无效。10环境错误。11试图加载格式错误的程序。12访问码无效。13数据无效。14存储器不足,无法完成此操作。15系统找不到指定的驱动器。16无法删除目录。17系统无法将文件移到不
微软面试100题全部答案 最新整理的全部100题的答案参见如下(重复的,以及一些无关紧要的题目跳过。且因尊重阿财,未作过多修改。因此,有些答案是还有问题的,最靠谱的答案以程序员编程艺术系列为准,亦可参考个人之前整理的前60题的答案:第1题-20题答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/61264...
题目描述写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。输入一个数输出如果是素数输出prime 如果不是输出not primeimport java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner xh=new Scanner (System.in)...
1052 卖个萌 (20分)萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:左手[右手]现给出可选用的符号集合,请你按用户的要求输出表情。输入格式:输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []内。题目保证每个集合都至少有一个符号,并不超过 10 个符号;每个符号包含 1 到 4 个非空字符。...
twist_filter节点主要完成对puresuit节点输出的汽车运动速度进行低通滤波处理,下面对一般的低滤波算法做说明: 电路中电荷Q与U 有关系式Q=CU.于是 参考他人资料 低通滤波算法如下: Yn=a* Xn+(1-a) *Yn-1式中 Xn——本次采样值Yn-1——上次的滤波输出值;a——滤波系数,其值通常远小于1;Yn——本次滤波的输出值。 由上式可以看出,本次滤波的输
Pytorch用多张GPU训练时,会报地址已被占用的错误。其实是端口号冲突了。因此解决方法要么kill原来的进程,要么修改端口号。在代码里重新配置torch.distributed.init_process_group() dist_init_method = 'tcp://{master_ip}:{master_port}'.format(master_ip='127.0.0.1', master_port='10000') dist_world_..
value, ok := em.(T);em 代表要判断的变量T 代表被判断的类型value 代表返回的值ok 代表是否为该类型注意:1: em 必须为interface 类型才可以进行类型断言func main() { // value, ok := em.(T); // em 代表要判断的变量 // T 代表被判断的类型 // value 代表返回的值 /...
想在vue中引入less,老是报错,百度良久,终于找到解决方案一、安装 less 和less-loader(npm install less less-loader --save)二、修改webpack.base.conf.js文件找到build文件夹下的webpack.base.conf.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加{test:/.less$/,loader:“style-loader!css-loader!less-loader”},如下