Python和asp.net core之间的ConnectionError



我想使用Python库请求连接到我的asp.net Core API点。

尝试将Json从Python发送到asp.net core后,我得到以下消息:

ConnectionError: HTTPConnectionPool(host='localhost', port=5000): Max retries exceeded with url:/api/Search(由NewConnectionError(': Failed to establish a new connection: [Errno 111] connection refused'))

btw:我只尝试了一次建立连接;-)

import requests
import json
class SearchApi:
@staticmethod
def findFile(request):

headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
url     = "http://localhost:5000/api/Search"
response = requests.post(url, data=json.dumps(request.__dict__), headers=headers)
return response.json()

和请求类:

class Request:
def __init__(self, driveId, itemId, searchName):
self.driveId = driveId
self.itemId = itemId
self.searchName = searchName

和asp.net Core后端方法:

[ApiController]
[Route("api/[controller]")]
public class SearchController : ControllerBase
[HttpPost]
public async Task<IActionResult> SearchFile([FromBody] SearchInfos searchInfos)
{
//......
Console.WriteLine("Ping ! ! ");
return Ok();
}

对于后端,不幸的是,没有来自Python的请求到达,但是Postman或Swagger测试是成功的。

我在代码中犯了什么错误?

更新

问题的原因是使用了ngrok代理。使用以下命令解决此问题:

ngrok http -host-header=localhost:5000

Try setkeep_alive = False.

s = requests.session()
s.keep_alive = False

尝试在标题中添加Connection=close

headers = {
'Connection': 'close',
'Content-type': 'application/json', 
'Accept': 'application/json'
}

最新更新