Библиотека HTTP, которая не зависит от HttpWebRequest - PullRequest
4 голосов
/ 06 апреля 2011

Мне нужна библиотека C # HTTP, которая не зависит от HttpWebRequest, поскольку я не могу получить к ней доступ из среды, в которой мне нужно запустить свой код (Unity's WebPlayer).

В идеале это будет легкий вес, но любые предложения приветствуются!

Мне просто нужно иметь возможность выполнять простые запросы HTTP GET и POST, но лучше будет поддерживать REST.

Спасибо!

Редактировать : Как уже указывалось, HttpWebRequest отсутствует в System.Web, но факт остается фактом - я не могу его использовать. Я обновил свой пост выше.

Этот пост http://forum.unity3d.com/threads/24445-NotSupportedException-System.Net.WebRequest.GetCreator показывает ту же ошибку, которую я получаю.

Ответы [ 3 ]

3 голосов
/ 07 апреля 2011

Реализация собственного простого HTTP-клиента с использованием Socket не так уж и сложна.

Просто используйте TcpClient ().

Для самого протокола перейдите к парадигме подключения к запросу. Типичный запрос GET будет выглядеть следующим образом:

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

Для самого кода (из памяти)

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
}

Обратите внимание, что вам нужно будет обернуть этот код простым классом, который обеспечивает HTTPWebRequest как семантика.

1 голос
/ 06 апреля 2011

HttpWebRequest находится в сборке System, а не в System.Web (возможно, вы путаете с HttpRequest, который используется в ASP.NET). Он доступен во всех версиях .NET Framework (включая Silverlight, WP7 и Client Profile)

1 голос
/ 06 апреля 2011

Посмотрите на System.Net.HttpWebRequest.

Это в System.dll.

Документация: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

HttpRequest находится в System.Web, о чем вы, вероятно, думали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...