requests之POST提交json数据问题

之前,写的一篇文章 《Python实现的站内消息群发助手-V1.0》,刚刚用了两三次,就遇到网站改版了,今天有空重来一遍,再写写这个功能。遇到了requests的post提交json数据的问题,没有解记,先记录下来。

还是三步:

  1. 在用户主页上获取“发送简信”的url(chats/new?mailto=xxx),这一步很容易获取
  • 打开chats/new?mailto=xxx,获取chat_id
  • POST提交,发送站内信

以上都需要登录操作,还是用Cookie登录方式。

第二步,通过mailto的id,获取chat_id,解析直接获取的url找不到,页面的源代码中也找不到,还是chrome检查,一步步分析network,这里加载的是json数据。


requests之POST提交json数据问题_第1张图片

测试出来正解的url应该是,chats/new.json?mailto=xxx,就解析获取到chat_id

第三步,分析发送简信的url是http://www.jianshu.com/chats/chat_id/chat_message,post提交json数据

requests之POST提交json数据问题_第2张图片
 data ={"chat_message":{"content":"hello...."}}

 requests.post(posturl, data=json.dumps(data), headers=headers)

还是发送不成功,post返回的是404。查了一下网上的类似的解决:

  • header指明要以json方式发送

"Content-Type": "application/json"

* 加上 application/x-www-form-urlencoded

"Content-Type": "application/x-www-form-urlencoded"

以上方式都调试还是不能成功发送,只能先存疑了。之前是表单POST方式,构造表单字段即可。不知道json数据在提交时还在注意什么,希望看到的童鞋帮忙了。

你可能感兴趣的:(requests之POST提交json数据问题)