开发者

HTTP library that doesn't depend on HttpWebRequest

I need a C# HTTP library that doesn't depend on HttpWebRequest, as I can't access this from the environment I need to run my code (Unity's WebPlayer).

Ideally this would be light weight, but any suggestions are welcome!

I just need to be able to do simple HTTP GET and POST requests, but better REST support would be good.

Thanks!

Edit: As people have pointed out, HttpWebRequest isn't in System.Web, but the fact remains - I can't use it. I've updated my post above.

This post http://forum.unity3d.com/threads/24445-NotSupportedException-Syst开发者_JS百科em.Net.WebRequest.GetCreator shows the same error I'm getting.


Implementing your own simple HTTP client using Socket is not all that difficult.

Just use TcpClient().

For the protocol itself, drop down to a connection-per-request paradigm. A typical GET request would look as follows:

GET /url HTTP/1.1
Host: <hostname-of-server>
Connection: close

For the code itself (from memory)

TcpClient client = new TcpClient();
IPEndPoint target = ... // get an endpoint for the target using DNS class
client.Connect(target);

using(NetworkStream stream = client.GetStream())
{
// send the request.
string request = "GET /url HTTP/1.1\r\nConnection: close\r\n\r\n";
stream.Write(Encoding.ASCII.GetBytes(request));

// then drain the stream to get the server response
}

Note that you will need to wrap this code with a simple class that provides HTTPWebRequest like semantics.


Look at System.Net.HttpWebRequest.

It is in System.dll.

Documentation: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

HttpRequest is located in System.Web, which is probably what you were thinking of.


HttpWebRequest is in the System assembly, not in System.Web (perhaps you're confusing with HttpRequest which is used in ASP.NET). It is available in all .NET Framework versions (including Silverlight, WP7, and Client Profile)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜