python请求无效参数



我试图发布一个请求到这个API。下面是我的代码:

import requests
accesstoken = "74e41f9c-8ae6-4ebd-9568-f0c92e83bb54"
authnn = "4ef2db2b-70ea-11ed-9f86-063d0d6fdfb5"
def sender(number):
smstext = "hello test now#" 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0','accessToken': accesstoken,'Authorization': authnn}
json_data = {
'content': smstext,
'contentType': 'TEXT',
'from': '+447860002234',
'to': number,
}
response = requests.post('https://api-sandbox.exmpl.io/v1/mms/', headers=headers, json=json_data)
resp =(response.text)
if '"acceptedTime":"' in resp:
print("SENT OK | {} | {}" .format(number,resp))
print(json_data)
time.sleep(10)
else:
print("ERROR => {}".format(resp))
print(json_data)
exit()
if __name__ == "__main__":
nums = input("NUMBERS LIST  : ")
op = open(nums, "r")
for i in op:
for i in i.split():
sender(i)

I get error

ERROR => {"code":"***","message":"Invalid parameter -  : to"}

我打印了JSON给我,我没有看到错误:

{'content': 'hello test now#', 'contentType': 'TEXT', 'from': '+447860002234', 'to': '+4113322422787'}

当我用预加载的数据做POST请求时,它工作得很好。

import requests
accesstoken = "74e41f9c-8ae6-4ebd-9568-f0c92e83bb54"
authnn = "4ef2db2b-70ea-11ed-9f86-063d0d6fdfb5"
def sender(number):
smstext = "hello bebe test hada wewe hehe dede nene tete Ref#" 
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0','accessToken': accesstoken,'Authorization': authnn}
json_data = {
'content': smstext,
'contentType': 'TEXT',
'from': '+4478623212234',
'to': '+4113322422787',
}
response = requests.post('https://api-sandbox.exmpl.io/v1/mms/', headers=headers, json=json_data)
resp =(response.text)
if '"acceptedTime":"' in resp:
print("SENT OK | {} | {}" .format(number,resp))
print(json_data)
time.sleep(10)
else:
print("ERROR => {}".format(resp))
print(json_data)
exit()
if __name__ == "__main__":
nums = input("NUMBERS LIST  : ")
op = open(nums, "r")
for i in op:
for i in i.split():
sender(i)

我希望在JSON中加载一个for循环的值。

我怀疑你的问题出在这段代码上:

if __name__ == "__main__":
nums = input("NUMBERS LIST  : ")
op = open(nums, "r")
for i in op:
for i in i.split():
sender(i)

在这种情况下,您可能没有使用文本文件中的正确条目来调用sender函数。字段。例如,您可能向sender发送的数据与您认为的不同(在这种情况下不是手机号码,因此被API拒绝)。

我建议运行像这样的东西,作为测试,以确认您需要将哪个列表元素发送为"to"场。

with open('nums', 'r') as f:
for line in f:
line_elements = line.strip().split()
print(line_elements)

使用上面的代码,您将看到数字文件中所有行的打印输出(每行都是数字文件中"列"的字符串的list)。您需要确认要发送的SMS号码是哪个索引,然后使用该索引调用发件人函数。例:如果你的文本文件有"to"Number作为其在空格分隔文件中的第一个值,那么你的代码将看起来像这样:

with open('nums', 'r') as f:
for line in f:
line_elements = line.strip().split()
sender(line_elements[0])
或者,如果您的nums文件只有在其中包含手机号码(没有其他任何内容),每个在新行上,那么这将工作:
with open('nums', 'r') as f:
for number in f.readlines():
sender(number.strip())

代码可能有其他问题,但请删除'to'后面的逗号:数字见下文

json_data = {
'content': smstext,
'contentType': 'TEXT',
'from': '+447860002234',
'to': number                   
}

相关内容

最新更新