HTTP向Python请求VBA代码不工作
由于某种原因,我无法转换此VBA代码。在运行Python脚本时,我一直获得401或400状态。此VBA代码工作正常,并获得所需的令牌HTTP向Python请求VBA代码不工作,python,vba,pandas,Python,Vba,Pandas,由于某种原因,我无法转换此VBA代码。在运行Python脚本时,我一直获得401或400状态。此VBA代码工作正常,并获得所需的令牌 Dim user Dim pwd Dim url Dim response Dim sessionid url = "https://xxxx" sRequest = "{""itrent"": {""login"": {""user"": ""xxx"",""pwd"": ""xxx""}}}" response = HTTPPost (url, sRe
Dim user
Dim pwd
Dim url
Dim response
Dim sessionid
url = "https://xxxx"
sRequest = "{""itrent"": {""login"": {""user"": ""xxx"",""pwd"": ""xxx""}}}"
response = HTTPPost (url, sRequest)
sessionid = ""
If InStr(response,"sessionid") > 0 Then
sessionid = getSession(response)
Else
MsgBox "No Session received : " + response
End If
MsgBox response
Function HTTPPost(sUrl, sRequest)
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl,False
oHTTP.setRequestHeader "Content-Type", "text/plain"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function
我的代码用于python尝试从VBA脚本转换:
import urllib
from urllib.parse import urlencode
import ssl
import requests
import json
from itertools import chain
import timeit
import pandas as pd
from pandas.io.json import json_normalize
import numpy as np
import datetime
from requests.auth import HTTPBasicAuth
# Todays Date
d = datetime.datetime.today().strftime('%d-%m-%Y')
TOKEN_API_URL = 'https://'
sRequest = "{""itrent"": {""login"": {""user"": ""xxxx"",""pwd"": ""Pxxx""}}}"
session = requests.Session()
session.headers = {'Accept':str(len(sRequest)), 'Content-Type':"text/plain"}
# data = urlencode(payload).encode()
login = session.post(TOKEN_API_URL,data=json.dumps(sRequest))
print(login)
也许可以尝试以下公式。注意,“不需要转义;使用外部单引号
import requests
TOKEN_API_URL = 'https://xyz'
data = '{"itrent": {"login": {"user": "xxx","pwd": "xxx"}}}'
headers = {'Content-Length':str(len(data)),'Content-Type':'text/plain'}
r = requests.post(TOKEN_API_URL, headers = headers, data = data)
print(r)
仍然不起作用。我又试了一次。这就是我开始的地方!非常令人沮丧!没关系。堆栈跟踪是什么?你能粘贴到pastebin.com吗?你试过注释中的替代标题吗?当然可以删除个人信息。还有,有API文档吗?这是API文档。他们混合了SOAP API和poor文档,REST API也是如此。使用json头时发生了什么?您可以尝试在不使用
Accept
content-length头的情况下发送它吗?