HttpLib is a free (Apache 2.0 License) web request helper for .Net that makes it easier for developers to access and download resources from the internet.
Master build
Version 2.0.12
The library was first released in 2012 and has since had over 5500 downloads.
The latest releases are available on CodePlex.
Source code is available on GitHub
The most recent release is 2.0.12 which supports the following features:
Supported platforms: .Net4.0+ (WinForms, WCF, ASP.Net, Silverlight 5, Windows Phone 8.0+, Windows 8.0+).
2.1.13: OAuth2 authentication provider
Anonymous usage statistics may be collected by the library. This can be disabled by calling Collector.DisableCollector().Disable() on app startup.
Performs a HTTP GET on a given URL and executes the lambda function provided to the OnSuccess method. This example prints the content of the web page to the command line.
Http.Get("https://jthorne.co.uk/httplib").OnSuccess(result =>
{
Console.Write(result);
}).Go();
Errors can be caught through using the OnFail method as show below:
Http.Get("https://jthorne.co.uk/httplib").OnSuccess(result =>
{
Console.Write(result);
}).OnFail(webexception =>
{
Console.Write(webexception.Message);
}).Go();
Web page form data can be posted to a web service using the .Form method as shown below. From user requests, this method also supports posting of dictionaries.
Http.Post("https://jthorne.co.uk/httplib").Form(new { name = "James", username = "j6mes" }).Go();
Alternatively, a raw message (such as SOAP or JSON) can be posted using the .Body method.
Multiple files from the local computer can be uploaded to the remote server through specifying a list of NamedFileStreams in the .Upload method.
Http.Post("https://jthorne.co.uk/httplib")
.Upload(files:
new[] {
new NamedFileStream("myfile", "photo.jpg", "application/octet-stream", File.OpenRead(@"C:\photo.jpg"))
}).Go();
And of course, fitting with the true flexibility of HttpLib, a progress monitor and onsuccess method can be added too:
Http.Post("https://jthorne.co.uk/httplib")
.Upload(
files:
new[] {
new NamedFileStream("myfile", "photo.jpg", "application/octet-stream", File.OpenRead(@"C:\photo.jpg"))
},
onProgressChanged:
(bytesSent, totalBytes) =>
{
Console.WriteLine("Uploading: " + (bytesSent / totalBytes)*100 + "% completed");
})
.OnSuccess(result=>
{
Console.WriteLine(result);
}).Go();
Files can be downloaded directly to disk using the DownloadTo extension. An OnSuccess method can be added as a parameter here.
If the server doesn’t reply with a content length header, the totalBytes value will be null meaning that you won’t be able to give a percentage of how much of the file has been downloaded.
Http.Get("https://jthorne.co.uk/httplib").DownloadTo(@"C:\httplib.html", onProgressChanged: (bytesCopied,totalBytes) =>;
{
if (totalBytes.HasValue)
{
("Downloaded: " + (bytesCopied/totalBytes)*100 + "%");
}
Console.Write("Downloaded: " + bytesCopied.ToString() + " bytes");
},
onSuccess: (headers) =>
{
UpdateText("Download Complete");
}).Go();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。