当我尝试发送帖子并将请求发送到我的webapi时遇到问题(服务器端使用php编码,并且可与mysql一起使用)。
如果我尝试发送get请求,则完全没有问题,API会正确响应,而当我尝试发送请求中的正文时,就会出现问题(这就是我认为发布和放置失败的原因)。>
只要我与邮递员和其他客户进行了测试,并且他们对这些请求都遵循正确的方式,我确信我的api可以正常工作。 API响应400错误请求,我不知道该怎么办。我已经用C#编写了相同的api,并且在客户端工作中编写了我的代码,通用Windows平台和PHP API是否不兼容?
我的PUT方法:
public async Task<int> updateFestivalDAL(Festival festival)
{
int resultado = 0;
Uri miConexion = (new clsMyConnection().getConnection());
HttpClient miCliente = new HttpClient();
String body = "";
HttpStringContent contenido;
HttpResponseMessage miRespuesta = new HttpResponseMessage();
try
{
body = JsonConvert.SerializeObject(festival);
contenido = new HttpStringContent(body, Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/json");
miRespuesta = await miCliente.PutAsync(new Uri(miConexion + "/" + festival.ID), contenido);
if (miRespuesta.IsSuccessStatusCode)
{
resultado = 1;
}
}
catch (SqlException e)
{
throw e;
}
return resultado;
}
那是我的请求中的身体:
"{\"ID\":1,\"edicion\":\"Prueba año anterior\",\"nombre\":\"fgh\",\"fecha_inicio\":\"2017-10-01T00:00:00\",\"fecha_fin\":\"2017-10-03T00:00:00\",\"coordenadas\":\"asdf\",\"twitter\":\"\",\"facebook\":\"\",\"instagram\":\"\",\"web\":\"\",\"curiosidades\":\"\"}"
那是我的API响应(miRespuesta变量值):
{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 2, Content:
Windows.Web.Http.HttpStreamContent, Headers:
{
Connection: close
Server: Apache/2.4.34 (Win32) OpenSSL/1.0.2o PHP/5.6.38
Date: Wed, 31 Oct 2018 21:47:36 GMT
X-Powered-By: PHP/5.6.38
}{
Content-Length: 0
Content-Type: text/html; charset=UTF-8
}}
如果您知道什么,请帮助我。
更新:当我看到miCliente变量(带有httpclient的变量)的内容时,我可以看到一个名为DefaultRequestHeaders的列表元素。也许有问题吗?我必须对其进行编辑以使其与PHP兼容?
更新2: 我已经在数据库和Festival类中更改了两个日期元素(fecha_inicio,fecha_fin),因此它们现在是varchar(类中的字符串),尝试问题是否是解析日期时间并尝试将其保存为日期在数据库中,但仍然无法正常工作。
邮递员成功请求:
PUT /festival/1 HTTP/1.1
Host: notrelevantbutwellformed.com
Content-Type: application/json
cache-control: no-cache
Postman-Token: 100313d6-7087-4712-8b93-17873e1db14b
{
"ID": "1",
"edicion": "fgh",
"nombre": "fgh",
"fecha_inicio": "2018-11-01",
"fecha_fin": "2018-11-01",
"coordenadas": "asdf",
"twitter": "asfd",
"facebook": "ffsd",
"instagram": "asrss",
"web": "noo va a petar",
"curiosidades": "sdfsdfdsf",
"url_logo": "",
"url_cartel": ""
}------WebKitFormBoundary7MA4YWxkTrZu0gW--