【问题标题】:How to get value back from a web services in C#?如何从 C# 中的 Web 服务中获取价值?
【发布时间】:2012-02-01 10:49:44
【问题描述】:

我正在向 Web 服务发送一个 URL 和 XML,以便它会向我返回有关结果的 JSON。我在这里将请求发布到网络服务,我如何从网络服务中获取价值。 Web 服务返回的值是 JSON。这里应该返回什么类型,应该返回什么来获取HTTP响应状态和body

public string HttpPostcredentials(string XML, string url)
{
    try
    {
        HttpWebRequest req = WebRequest.Create(new Uri(url)) as HttpWebRequest;
        req.Method = "POST";
        byte[] buffer = Encoding.ASCII.GetBytes(XML);
        req.ContentLength = buffer.Length;
        req.ContentType = "application/xml";
        Stream PostData = req.GetRequestStream();
        PostData.Write(buffer, 0, buffer.Length);
        PostData.Close();            
    }
    catch (Exception e)
    {
    }
    return null;
}

【问题讨论】:

  • 空的catch子句是万恶之源。

标签: c# xml json


【解决方案1】:

这是你要找的吗:

var request = WebRequest.Create(string.Concat(serviceUrl, resourceUrl)) as HttpWebRequest;
if (request != null)
{
    request.ContentType = "application/xml";
    request.Method = "POST";
}    

byte[] requestBodyBytes = Encoding.ASCII.GetBytes(XML);
request.ContentLength = requestBodyBytes.Length;
using (Stream postStream = request.GetRequestStream())
    postStream.Write(requestBodyBytes, 0, requestBodyBytes.Length);


if (request != null)
{
    var response = request.GetResponse() as HttpWebResponse;
    if(response.StatusCode == HttpStatusCode.OK)
    {
        Stream responseStream = response.GetResponseStream();
        if (responseStream != null)
        {
            var reader = new StreamReader(responseStream);

            responseMessage = reader.ReadToEnd();
        }
    }
    else
    {
        responseMessage = response.StatusDescription;
    }
}

【讨论】:

    【解决方案2】:

    您需要从 HttpWebRequest 获取响应

            WebResponse result = req.GetResponse();
    

    【讨论】:

    • 并将其转换为 HttpWebResponse,以便您可以访问 StatusCode。
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 2019-08-31
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 2017-05-17
    相关资源
    最近更新 更多