簡體   English   中英

連接中止。,Django 中的錯誤(104,“對等連接重置”)

[英]Connection aborted., error(104, 'Connection reset by peer') in Django

我在 Django 中創建了一個 API,並在其中調用了一個接受 XML 數據的第三方 API。 使用 30 行 XML 它工作正常,更多行拋出錯誤“連接中止。',錯誤(104,'連接重置由對等')”。 第三方還提供了一個 UI,因此我可以測試他們接受的多達 5000 行並返回正確的結果。 連接未從任一 API 關閉。 可能是什么問題?

預期結果

對於請求中的更多數據,post 請求應該可以正常工作,因為它對於較少的數據可以正常工作。

實際結果

ConnectionError at /v1/send-sms/
('Connection aborted.', error(104, 'Connection reset by peer'))
Request Method: POST
Request URL:    http://example.com/v1/send-sms/
Django Version: 1.11
Exception Type: ConnectionError
Exception Value:    
('Connection aborted.', error(104, 'Connection reset by peer'))
Exception Location: /home/user-135/sandbox/venv/local/lib/python2.7/site-packages/requests/adapters.py in send, line 490
Python Executable:  /home/user-135/sandbox/venv/bin/python
Python Version: 2.7.12
Python Path:    
['/home/user-135/public_html/MyProject',
 '/home/user-135/sandbox/venv/lib/python2.7',
 '/home/user-135/sandbox/venv/lib/python2.7/plat-x86_64-linux-gnu',
 '/home/user-135/sandbox/venv/lib/python2.7/lib-tk',
 '/home/user-135/sandbox/venv/lib/python2.7/lib-old',
 '/home/user-135/sandbox/venv/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/home/user-135/sandbox/venv/local/lib/python2.7/site-packages',
 '/home/user-135/public_html/MyProject',
 '/home/user-135/public_html/MyProject']
Server time:    Wed, 7 Mar 2018 10:55:19 +0530

繁殖步驟

import requests

recievers = ''
url = 'https://example.com/sms/'
for x in xrange(0, len(users)):
    y = x + 1
    body_content = body
    phone = mobile_no
    recievers = recievers + "<SMS>.......</SMS>"

xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<!DOCTYPE MESSAGE SYSTEM \"http://127.0.0.1:80/sms/ttr/sms.ptp\">\n<MESSAGE VER=\"1.2\">\n<USER USERNAME=\""+username+"\" PASSWORD=\""+password+"\" />"+recievers+"\n</MESSAGE>"

querystring = {"data": xml,"action":"send"}
headers = {'content-type': "application/xml"}
response = requests.request("POST", url, headers=headers, params=querystring)

嘗試用“data=querystring”替換“params=querystring”

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

params 似乎是針對 GET 請求的,並且在 30 行 XML 之后,您的請求 URL 可能會變得太長。

來自以下文檔: http : //docs.python-requests.org/en/master/user/quickstart/

我有一個類似的案例。 當我通過我的 API 訪問 delete 方法時,控制台給出了這個錯誤。 問題通過修復view.py文件中的delete函數解決,即該方法返回的Response函數的status參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM