如何在Python中使用此API?我就是不能

2024-10-01 04:54:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图使用这个API,我得到了这个URL http://www.ventamovil.com.mx:9092/service.asmx?op=Check_Balance

在这里,您可以在输入字段中写入此{“User”:“6144135400”,“Password”:“Prueba$$”},然后得到一个响应

https://i.stack.imgur.com/RTEii.png

Response

但当我尝试在python上使用此api时,我就是不能,我不知道如何正确使用:

My Code

正如您所看到的,我的代码得到了不同的响应,我应该得到与“响应”图像相同的响应


Tags: comapihttpurlcheckwwwservicepassword
1条回答
网友
1楼 · 发布于 2024-10-01 04:54:20

为了节省一些时间,您可以使用他们的请求自动构建python代码,您所要做的就是:

  • 正如您最初所做的那样,在输入字段中输入json并调用
  • 打开“网络”选项卡,将他们发出的post请求复制为curl
curl 'http://www.ventamovil.com.mx:9092/service.asmx/Check_Balance' -H 'Connection: keep-alive' -H 'Cache-Control: max-age=0' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36' -H 'Origin: http://www.ventamovil.com.mx:9092' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' -H 'Referer: http://www.ventamovil.com.mx:9092/service.asmx?op=Check_Balance' -H 'Accept-Language: en-US,en;q=0.9,ar;q=0.8,pt;q=0.7'  data 'jrquest=%7B%22User%22%3A6144135400%2C+%22Password%22%3A+%22Prueba%24%24%22%7D'  compressed  insecure
  • 转到postman并导入curl,然后单击code并选择python,在这里您就有了所需的所有正确的标题
import requests

url = "http://www.ventamovil.com.mx:9092/service.asmx/Check_Balance"

payload = 'jrquest=%7B%22User%22%3A6144135400%2C+%22Password%22%3A+%22Prueba%24%24%22%7D'
headers = {
  'Upgrade-Insecure-Requests': '1',
  'Content-Type': 'application/x-www-form-urlencoded',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

如您所见,它们接受输入作为表单编码的有效负载

您需要修改此请求,以便在每次使用时使用所需的用户/密码进行参数化

顺便说一句,此python代码的输出为:

b'<?xml version="1.0" encoding="utf-8"?>\r\n<string xmlns="http://www.ventamovil.com.mx/ws/">{"Confirmation":"00","Saldo_Inicial":"10000","Compras":"9360","Ventas":"8416","Comision":"469","Balance":"10345.92"}</string>'

相关问题 更多 >