Post JSON con API de descanso usando Webreest de WP7
-
12-11-2019 - |
Pregunta
Estoy actualizando la tabla DB en force.com usando API de descanso.Y estoy publicando datos de JSON para actualizar la tabla DB como esta.
// preparing webrequest
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
// adding request headers
request.ContentType = "application/json";
request.Headers["Authorization"] = "OAuth " + token;
request.Headers["X-PrettyPrint"] = "1";
// request method
request.Method = "PATCH";
// start the asynchronous operation
request.BeginGetRequestStream(new AsyncCallback(SaveBeginGetRequestStreamCallBack), request);
private void SaveBeginGetRequestStreamCallBack(IAsyncResult ar)
{
HttpWebRequest webRequest = (HttpWebRequest)ar.AsyncState;
Stream postStream = webRequest.EndGetRequestStream(ar);
(using (StreamWriter sw = new StreamWriter(postStream))
{
sw.Write(postData);
// postData is in json format like: {"Name":"Michel"}
}
postStream.close();
webRequest.BeginGetResponse(new AsyncCallback(SaveBeginGetResponseCallback), webRequest);
}
private void SaveBeginGetResponseCallback(IAsyncResult ar)
{
try
{
HttpWebRequest webRequest = (HttpWebRequest)ar.AsyncState;
HttpWebResponse response;
// End the get response operation
response = (HttpWebResponse)webRequest.EndGetResponse(ar);
Stream streamResponse = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamResponse);
string Response = streamReader.ReadToEnd();
streamResponse.Close();
streamReader.Close();
response.Close();
}
catch (WebException e)
{
MessageBox.Show(e.Message);
// Error treatment
}
Pero está mostrando un error de solicitud de mala solicitud.¿Es una forma correcta de enviar un formato JSON a través de la solicitud HTTP?
Solución
No está cerrando / desechando el PostStream antes de llamar a BEINGETRESPONSE ...
también, llame
sw.Write(data);
Dado que los datos son una cadena.Su llamada (pasar un desplazamiento y un conteo) sería apropiado para una matriz de bytes.En realidad, está llamando a una sobrecarga de formato http:// msdn.Microsoft.com / EN-EEUU / Library / FD857WCT (V= vs.96) .aspx
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow