将curl转换为.net web请求

时间:2013-05-07 11:22:04

标签: http curl http-headers httpwebrequest

以下是文档中的curl命令:

curl -g "http://ip.ip.ip.ip/test/xyz.jpg?attributes=size"

我可以像这样将它翻译成HttpReqeust吗?

UriBuilder builder = new UriBuilder("http", "ip.ip.ip.ip", 80, /test/xyz.jpg);
Uri uri = builder.Uri;
System.Net.HttpWebRequest request =
                ((HttpWebRequest)WebRequest.Create(uri + "?attributes=system::size"));

UriBuilder只是伪代码。我得到一个例外:错误请求

我是否必须使用请求标头来添加属性?或者这是如何工作的?

1 个答案:

答案 0 :(得分:0)

你可以尝试:

UriBuilder builder = new UriBuilder("http", "ip.ip.ip.ip", 80, "/test/xyz.jpg");
Uri uri = builder.Uri;
System.Net.WebClient cli = new System.Net.WebClient();
cli.DownloadFile(uri.ToString() + "?attributes=size", "C:\\xyz.jpg");

您可以使用HttpWebRequest,但要下载文件还需要编写更多代码。如果需要,还要小心System.Web.HttpUtility.UrlEncode任何查询字符串。

顺便提一下,为什么要在两个样本之间将?attributes=size更改为?attributes=system::size