我試圖儘可能簡單地使用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而沒有幾個元素。這是一些書籍,論文等目錄的服務,所以標題,作者,發佈日期,沒有什麼特別的 –