我试图尽可能简单地使用C#实用程序来使用RESTful服务。响应以XML形式给出,我只想将它放入字符串中,稍后“漂亮地打印它”并将其保存在磁盘上。现在我正在努力获得适当的回应。服务是第三方,它运行良好,在浏览器和Java客户端多次测试。在C#程序的授权去确定,据我可以告诉我在调试器中看到响应对象简单的C#RESTful客户端
StatusCode OK System.Net.HttpStatusCode
和
StatusDescription "OK" string
不过貌似响应本身是空的?必须以String形式保存响应的String Xml为空(非空,但为空)。我做错了什么?
下面是完整的代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.IO;
using System.Net;
using System.Xml;
namespace ConsoleApplication3
{
class Program
{
public static void SetBasicAuthHeader(WebRequest request, String userName, String userPassword)
{
string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers["Authorization"] = "Basic " + authInfo;
}
static void Main(string[] args)
{
HttpWebRequest request = null;
HttpWebResponse response = null;
String Xml;
// Create the web request
request = WebRequest.Create("https://some.web.services.com?id='1234'¶m1='1'¶m2='2'") as HttpWebRequest;
SetBasicAuthHeader(request, "userName", "userPassword");
// Get response
response = request.GetResponse() as HttpWebResponse;
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
Xml = reader.ReadToEnd();
// Console xml output
Console.WriteLine(Xml); //see if we get the xml response
}
}
}
什么是“电线”? – Amit
为什么你使用'WebRequest'而不是'HttpClient'? – Luiso
@Amit我不知道你的意思,但如果你问我应该怎么回答,那么它只是简单的XML而没有几个元素。这是一些书籍,论文等目录的服务,所以标题,作者,发布日期,没有什么特别的 –