![](/img/trans.png)
[英]How do I upload document by converting HttpClient request to RestSharp request?
[英]How do I send a HTTP PUT request with HttpClient?
我有一个正在尝试写入的 web 服务,但每次我尝试向它发送PUT请求时,我都会收到'Bad Request(400)' Error 。 我正在使用 ASP.NET MVC 框架,并且在我的一个控制器中设置了所有内容。 我也有一个 model 来模拟应该发送到 API 的数据。 这就是我设置所有内容的方式:
放置FUNCTION
public string putFunction(ItemOject item)
{
// PROVIDED DETAILS
string API_PATH = "API_PATH";
// CONTENT
var content = new StringContent(JsonConvert.SerializeObject(item));
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Key1", KEY_1);
client.DefaultRequestHeaders.Add("Key2",KEY_2);
client.DefaultRequestHeaders.Add("Key3", KEY_3);
// KEYS and BASE_URL are defined outside the function
var response = client.PutAsync($"{BASE_URL}{API_PATH}", content).Result;
return response.ToString();
}
这是参数“项目”正在传递的内容:
ItemObject item = new ItemObject
{
Name = "Test2",
Errors = null,
ID = "8c785cd5-673a-4b3c-b97d-b8446dad401a",
OwnerID = "30e5772a-a11c-4172-96ae-cc850bd6509a"
};
这是我得到的回应:
StatusCode: 400, ReasonPhrase: 'Bad Request'
我很肯定所有的 KEYS 都设置正确并且 URL 是正确的。 端点确实有效,因为我已经在 Postman 中对其进行了测试,没有任何问题。 现在唯一的事情是我无法从这个 function 发送 HTTP PUT 请求。 我一直在努力确保我在 Postman 中发送的数据几乎正是我从这个 function 发送的数据。 我不知道我错过了什么或我可以尝试更多的测试。
这是我的 Postman 请求:
{"Item":
{
"Errors": null,
"ID": "8c785cd5-673a-4b3c-b97d-b8446dad401a",
"Name": "Test1",
"OwnerID": "00000000-0000-0000-0000-000000000000"
}
}
如果我要再次发送 GET 请求,它在 Postman 中工作正常,它会检索所述数据。 但是我不能在 ASP.NET 中这样做,而不会出现“错误请求(400)”错误。
到目前为止我已经尝试过:
序列化您当前的 object 将导致:
{
"Errors": null,
"ID": "8c785cd5-673a-4b3c-b97d-b8446dad401a",
"Name": "Test1",
"OwnerID": "00000000-0000-0000-0000-000000000000"
}
但是你传递给 Postman 的是这样的:
{
"Item":
{
"Errors": null,
"ID": "8c785cd5-673a-4b3c-b97d-b8446dad401a",
"Name": "Test1",
"OwnerID": "00000000-0000-0000-0000-000000000000"
}
}
所以你的 model 应该看起来更像:
ItemObject item = new ItemObject()
{
Item = new ItemSubObject()
{
Name = "Test2",
Errors = null,
ID = "8c785cd5-673a-4b3c-b97d-b8446dad401a",
OwnerID = "30e5772a-a11c-4172-96ae-cc850bd6509a"
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.