有点奇怪的问题,Python读取文件内容post 跟 nc提交post 结果不一致

netxboy 2019-09-23 01:05:18
刚学习python,特别初级,照猫画虎做点简单的事,遇到这个不知道怎么解决的问题,烦请老师们看看。

抓包了一段提交的数据,带cookie,且在时效性之内,内容如下:(地址已打码)

POST https://ggx.xxs.cn/hello/co/mit HTTP/1.1
Host: ggx.xxs.cn
Connection: keep-alive
Content-Length: 205
Accept: */*
Origin: https://ggx.xxs.cn
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Linux; Android 8.0.0; DAC-DC00 Build/HEOOEFG-DC00; wv) AppleWebKit/557.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.3469.126 MQQBrowser/6.2 TBS/044 Mobile Safari/537.36 MMWEBID/5350 MicroMessenger/9.0.3.1400(0x27100334) Process/tools NetType/WIFI Language/zh_CN
Content-Type: application/json
Referer: https://ggx.xxs.cn/hello/co/mit/service?wechatOriginId=cd_13da4cd45e7d&Id=2602000100&venueName=Name
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh-CN;q=0.9,en-US;q=0.8
Cookie: JSESSIONID=71BV7FA25E903696ED5AEE02706D1C09; Hm_lvt_bc864c0a0574a7cabe6b36d53206fb69=1579109852; gr_user_id=8a2b11f3-7274-41e8-baf2-f8390d22ff21; gr_session_id_ade9dc5496ada31e=f8400be6-45c0-4dac-aca0-efec301ca40a; Hm_lpvt_bc864c0a0574a7cabe6b36d53206fb69=1569669499; gr_session_id_ade9cd5496cda31e_f8400be6-45c0-4dac-aca0-ecec301ca40a=true

{"Id":"2602000100","sId":"1001","fType":"666","day":"20190822","fInfo":"3ad972a445b07255666792cbe2fa6b50,7cdaba046c0ef2225d3b13ec792b3674,9de5av9471820b74fee223b4a532e7ce,27abgdqf2ea63f31665c98e84a6a82b4"}


这段代码(打码前的),保存到文件里面,用nc提交,返回正确结果,用Python读取文件内容提交,就返回错误结果,代码如下:

============================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests, json

url = 'https://ggx.xxs.cn/hello/co/mit'

fp = open("test.txt", "r")
data = fp.read()
fp.close()
Response = requests.post(url, data=json.dumps(data))
# Response = requests.post(url, data) #用不用json格式都返回错误结果。
print (Response.text)
============================================================

文件用的是一个,都是这个test.txt, 用nc就能提交上去返回正确结果,上面python代码就返回错误,而且这个错误跟cookie失效的错误是一样的,当然可能别的问题也是这个错误,我只能确定cookie是有效的,nc用的也是这个cookie。

问题感觉很简单,可就是不知道怎么找,百度了半天也没有类似的介绍。

谢谢老师们。
...全文
227 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
netxboy 2019-09-23
  • 打赏
  • 举报
回复
谢谢回复,原因找着了,对函数的理解不是很深刻,这样的用法就是错的。。要把header和data分开来写的。
尐东东 2019-09-23
  • 打赏
  • 举报
回复
引用 2 楼 尐东东 的回复:

data = json.loads(data)
啊。。这个不能用 。。。
尐东东 2019-09-23
  • 打赏
  • 举报
回复

data = json.loads(data)
尐东东 2019-09-23
  • 打赏
  • 举报
回复
我也是初学者,我认为 requests. 需要的 data 好像应该是字典形式的。。。所以是不是应该把数据转换成字典

data = fp.read()
exec('data='+data)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

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