如何将 Json 对象从 c# 客户端发布到服务器中的 Python API?



我正在尝试将JSON数据从C#(使用JObject(发送到Python Flask API。每当我在本地主机中对此进行测试时,python API 都能够以 JSON 形式读取数据。但是,当代码部署在服务器中时,它无法读取数据并且正在中断。C# 代码部署在 Azure VM 的 IIS 中,Python 部署为 Azure 中的微服务。我做错了什么?有没有其他方法可以在两种语言之间进行通信,而不是 JSON。您可以在下面找到代码片段:

C#:

string personjson = HttpContext.Request.Form["personinfo"]
var json = JObject.Parse(personjson);
_client = new HttpClient { BaseAddress = new 
Uri("http://mypythonapi.azurewebsites.net") };
_client.DefaultRequestHeaders.Clear();
_client.DefaultRequestHeaders.Accept.Clear();              
_client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var response = await _client.PostAsJsonAsync("/insertPersonNode", 
json);
var message = response.IsSuccessStatusCode ? "Data posted" : $"Failed to post data. Status code:{response.StatusCode}";

蟒:

@app.route('/insertPersonNode', methods=['POST'])
def insertPersonNode():
try:        
UserName = request.authorization['username']
Password = request.authorization['password']
userLoginNode = userAuthentication(UserName, Password)
data = request.json 

最后,我找到了这个问题的解决方案。使用PostAsync而不是PostAsJsonAsync对我有用。

var response = await _client.PostAsync("/insertPersonNode", new StringContent(personjson, Encoding.UTF8, "application/json"));

最新更新