net example data consume c# json httpwebrequest

example - Use C#HttpWebRequest para enviar json al servicio web



webrequest post c# json (1)

Soy nuevo en JSON y necesito ayuda. Tengo algunos JSON trabajando en jquery y obtengo la información correctamente del servicio web que tengo en la web. Sin embargo, no puedo hacer que funcione con HttpWebRequest en C #. Voy a publicar el código a continuación.

/// <summary> /// Summary description for VBRService /// </summary> [WebService(Namespace = "http://test.visitblueridge.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService] public class VBRService : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string callJson(string x) { return "Worked =" + x; } }

Eso está en el servicio web y quiero poder llamar a "callJson (cadena x)" usando este código,

var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr); httpWebRequest.ContentType = "text/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{/"x/":/"true/"}"; streamWriter.Write(json); streamWriter.Flush(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); return result; }

Sigo recibiendo un error interno del servidor. Cuando cambio el tipo a application / json y añado,

request.Headers.Add("SOAPAction", "http://test.visitblueridge.com/callJson");

Recibo un error de medios no aceptado.

Gracias de antemano y espero que esto ayude a otros.


En primer lugar, perdió el atributo ScriptService para agregarlo en el servicio web.

[ScriptService]

Luego, intente el siguiente método para llamar al servicio web a través de JSON.

var webAddr = "http://Domain/VBRService.asmx/callJson"; var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr); httpWebRequest.ContentType = "application/json; charset=utf-8"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { string json = "{/"x/":/"true/"}"; streamWriter.Write(json); streamWriter.Flush(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); return result; }