python 我如何从一个txt文件中一次获取一行数据,并将其用作发送请求的变量?

jjjwad0x  于 2023-01-08  发布在  Python
关注(0)|答案(2)|浏览(125)

我目前正在做一个我认为很酷的小项目。然而,我遇到了一个大障碍。我试图让它从文本文件中读取用户名并将其上传到API,然而我不断收到错误代码400,服务器响应指出请求中的用户名字段为空。我还添加了一个print语句来确认凭据变量是否设置正确。这让我觉得这是我和API之间的通信错误。我认为另一个问题可能是我将内容类型设置为"plain/text"。我运行Wireshark查看我所做的确切请求,看起来所有内容都挤在一起了。以下是我当前的代码;

import requests
import time

with open('./user.txt', 'r') as f:
    creds = f.read()

print(f"Current User: {creds}")

url = 'http://example.com/api'
data = {f"nickname":"{creds}","password":"{creds}","email":"","referral":"null"}
headers = {'Content-Type': 'text/plain'}

response = requests.post(url, data=data, headers=headers)

我是一个使用requests库的新手,所以如果这是一个不好的问题,我很抱歉,但是任何帮助都将非常感谢。
编辑; Wireshark声明我的请求数据为"昵称= %7Bcreds%7D &密码= %7Bcreds%7D"。
谢谢!

8fsztsew

8fsztsew1#

import time
import requests
import json

with open('./user.txt', 'r') as f:
    for line in f:
        creds = line.strip()
        print(f"Current User: {creds}")

        url = 'http://example.com/api'
        data = {f"nickname":"{creds}","password":"{creds}","email":"","referral":"null"}
        headers = {'Content-Type': 'application/json'}

        response = requests.post(url, data=json.dumps(data), headers=headers)
        print(response.status_code)
        print(response.text)
z4iuyo4d

z4iuyo4d2#

问题出在我的头类型上!我不需要使用JSON或plain/text。我使用了application/x-www-form-urlencoding,这是我从文件的历史记录中得到的。应用程序现在读取每个用户名和密码,并将其发送到服务器!

相关问题