1

我正在检查 namecheap api 并且在开始时遇到了一些困难。我在设置沙盒帐户等后尝试访问 api,示例响应采用 XML 格式:

<ApiResponse Status="OK" xmlns="http://api.namecheap.com/xml.response">
  <Errors />
  <Warnings />
  <RequestedCommand>namecheap.domains.check</RequestedCommand>
  <CommandResponse>
    <DomainCheckResult Domain="google.com" Available="false" />
  </CommandResponse>
  <Server>WEB1-SANDBOX1</Server>
  <GMTTimeDifference>--4:00</GMTTimeDifference>
  <ExecutionTime>0.875</ExecutionTime>
</ApiResponse>

我知道如何解析 XML,但我需要一点指导是如何开始 API 调用的实际请求/响应部分。

我知道我需要发送哪些参数,我知道我需要 api 密钥和 url,但是我如何编写其中的 WebRequest 和 WebResponse 部分呢?或者,Linq 也可以为我提供实现这一目标的方法吗?

我试图使用:

WebRequest req = HttpWebRequest.Create(url + apikey + username + command + domain);
WebResponse response = req.GetResponse();

但我看不到用 variable 做任何事情的方法response

如何对该 API 进行非常简单的 API 调用并将其响应转换为 XML 格式以便解析它?

任何帮助都非常感谢。

4

2 回答 2

2

您需要获取关联的响应流并从中读取:

// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream ();

StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd ());
于 2013-05-08T20:14:46.077 回答
-2

WebResponse是抽象的,您必须将其转换为HttpWebResponse.

HttpWebResponse response = (HttpWebResponse)req.GetResponse();

然后,您将能够访问您正在寻找的各种信息。


WebClient此外,如果您只是在做简单的网络请求,您可能会考虑使用 a ,它容易使用......实际上就像:

string response = new WebClient().DownloadString("http://somewebsite.com/some/resource?params=123");
于 2013-05-08T20:14:57.517 回答