所以我正在尝试向我的API发送一个PUT请求来编辑我的一个表中的一条记录。这对于Postman和swagger页面来说很好。但不知何故,当我试图用C#的webclient做这件事时它不会发送。这是我的代码。
public static void putProductData(string model, Models.Product product)
{
//HttpClient client = new HttpClient();
MultipartFormDataContent mfdc = new MultipartFormDataContent();
// create the communication to the model from the API.
string apiposturl = apiurl;
apiposturl += model;
apiposturl += "/bewerken";
var client = new RestClient("http://mayapi.net");
var request = new RestRequest("/api/products/bewerken", Method.PUT);
// Zet de headers voor de request.
// Dit is bij alles hetzelfde met een multipart/form-data requeset.
request.AddHeader("postman-token", "293a9ff3-e250-e688-e20d-5d16ea635597");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request.AddHeader("Content-Type", "multipart/form-data");
request.AddHeader("Authorization", "token");
request.AddHeader("Connection", "Keep-Alive");
// Vul de parameters met de waardes van heet model.
request.AddParameter("productNaam", product.ProductNaam);
request.AddParameter("productPrijs", product.ProductPrijs);
request.AddParameter("productBeschrijving", product.ProductBeschrijving);
request.AddParameter("productType", product.ProductType);
request.AddParameter("productKorting", product.ProductKorting);
request.AddParameter("productVoorraad", product.ProductVoorraad);
request.AddParameter("productDirectLeverbaar", product.ProductDirectLeverbaar);
request.AddFile("productAfbeelding", product.ProductAfbeelding); // Voeg hier het bestandspad in.
request.AddParameter("productWinkel", product.ProductWinkel);
//client.Execute(request);
// Verstuur de request.
//IRestResponse response = client.Execute(request);
IRestResponse response = client.Execute(request);
var content = response.Content; ;
}
奇怪的是,当我执行它时,Fiddler中没有PUT请求,所以我无法通过Fiddler进行真正的调试。这是响应在带有断点的代码中显示的错误之一:
{“请求已中止:请求已取消。”}
我读到这可以通过Connection:Keep-Alive修复,但遗憾的是这对我不起作用。有人可以帮帮我吗?
修改
我认为这可能是一些有用的信息。如果我用RestSharp发送一个post请求它实际上有效,但PUT请求不是
答案 0 :(得分:0)
我解决了它,它必须对我在API中更新的模型做一些事情。他们处理此代码的人忘了将字段更新为更新的模型。这就是它不发送数据的原因。