Python请求导致空白响应

时间:2018-01-31 14:59:19

标签: python python-3.x get request

我对Python比较陌生,所以想要一些帮助,我创建了一个脚本,它只使用请求库和基本身份验证来连接到API并返回xml或Json结果。

# Imports
import requests
from requests.auth import HTTPBasicAuth

# Set variables 
url = "api"
apiuser = 'test'
apipass = 'testpass'

# CALL API
r = requests.get(url, auth=HTTPBasicAuth(apiuser, apipass))

# Print Statuscode
print(r.status_code)

# Print XML
xmlString = str(r.text)
print(xmlString)

但是它返回一个空字符串。

如果我使用浏览器调用api并输入提示,我会得到以下回复。

<Response>
<status>SUCCESS</status>
<callId>99999903219032190321</callId>
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Dummy">
<authorFullName>jack jones</authorFullName>
<authorOrderNumber>1</authorOrderNumber>
</result>
</Response>

谁能告诉我哪里出错了。

5 个答案:

答案 0 :(得分:0)

如果请求为空,甚至没有状态代码我建议在打印之间等待一段时间。也许服务器花时间将响应返回给您。

import time time.sleep(5)

不是最好的东西,但值得尝试

How can I make a time delay in Python?

我猜执行期间没有错误

编辑:nvm,你提到你有一个状态代码,我以为你确实没有做任何事情。

另一方面,如果你使用python3,你必须使用Print(),它取代了Print

答案 1 :(得分:0)

您要连接哪些API?

尝试在标题中添加用户代理:

r = requests.get(url, auth=HTTPBasicAuth(apiuser, apipass), headers={'User-Agent':'test'})

答案 2 :(得分:0)

运行此命令并查看您获得的回复。

import requests

url = "https://google.com"

r = requests.get(url)

print(r.status_code)
print(r.json)
print(r.text)

当您开始在GET,PUT,DELETE或POST请求中传递内容时,您将在请求中添加它。

url = "https://google.com"
headers = {'api key': 'blah92382377432432')

r = requests.get(url, headers=headers)

然后你应该看到相同类型的回复。长话短说,     打印(r.text)以查看响应,然后一旦看到响应的格式,就可以随意移动它。

答案 3 :(得分:0)

仅当身份验证失败或被拒绝时,我的响应为空。 HTTP状态仍为≤400。 但是,在标题中您可以找到:

void updateView(CameraData * cameraData, MouseData * mouseData, MouseParameters * mouseParameters){
    
    float deltaX = mouseData->currentX - mouseData->lastX;
    float deltaY = mouseData->currentY - mouseData->lastY;

    mouseData->lastX = mouseData->currentX;
    mouseData->lastY = mouseData->currentY;
    
    float pitch = mouseParameters->sensitivityY * deltaY;
    float yaw   = mouseParameters->sensitivityX * deltaX;

    glm::quat pitch_Q = glm::quat(glm::vec3(pitch, 0.0f, 0.0f));
    glm::quat yaw_Q = glm::quat(glm::vec3(0.0f, yaw, 0.0f)); 

    cameraData->Q = pitch_Q * cameraData->Q * yaw_Q;
    cameraData->Q = glm::normalize(cameraData->Q);

    glm::mat4 rotation = glm::toMat4(cameraData->Q); 

    glm::mat4 translation = glm::mat4(1.0f);
    translation = glm::translate(translation, -(cameraData->position));

    cameraData->viewMatrix = rotation * translation;

    cameraData->forward = (cameraData->viewMatrix)[2];
    cameraData->up = (cameraData->viewMatrix)[1];
    cameraData->right = (cameraData->viewMatrix)[0];
 }

'X-Seraph-LoginReason': 'AUTHENTICATED_FAILED'

答案 4 :(得分:0)

虽然这不是 OP 的确切答案,但它可以为拥有来自 blank responsepython-requests 的人解决问题。

由于内容类型错误,我收到了空白响应。我期待的是 HTML 而不是 JSON 或登录成功。对我来说正确的 content-typeapplication/x-www-form-urlencoded

基本上我必须执行以下操作才能使我的脚本正常工作。

data = 'arcDate=2021/01/05'
headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
}

r = requests.post('https://www.deccanherald.com/getarchive', data=data, headers=headers)
print(r.status_code)
print(r.text)

application/x-www-form-urlencoded or multipart/form-data?

中了解更多信息