Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不使用';不依赖于HttpWebRequest_C#_Http_Httpwebrequest_Unity3d - Fatal编程技术网

C# 不使用';不依赖于HttpWebRequest

C# 不使用';不依赖于HttpWebRequest,c#,http,httpwebrequest,unity3d,C#,Http,Httpwebrequest,Unity3d,我需要一个不依赖HttpWebRequest的C#HTTP库,因为我无法从运行代码所需的环境(Unity的WebPlayer)中访问它 理想情况下,这将是重量轻,但任何建议都是欢迎的 我只需要能够执行简单的HTTPGET和POST请求,但是更好的REST支持就好了 谢谢 编辑:正如人们指出的,HttpWebRequest不在System.Web中,但事实仍然存在——我不能使用它。我已经更新了上面的帖子 本帖 显示了我收到的相同错误。查看System.Net.HttpWebRequest 它位于S

我需要一个不依赖HttpWebRequest的C#HTTP库,因为我无法从运行代码所需的环境(Unity的WebPlayer)中访问它

理想情况下,这将是重量轻,但任何建议都是欢迎的

我只需要能够执行简单的HTTPGET和POST请求,但是更好的REST支持就好了

谢谢

编辑:正如人们指出的,HttpWebRequest不在System.Web中,但事实仍然存在——我不能使用它。我已经更新了上面的帖子

本帖
显示了我收到的相同错误。

查看
System.Net.HttpWebRequest

它位于
System.dll

文档:


HttpRequest
位于
System.Web
,这可能就是您所想的。

HttpWebRequest
位于
System
程序集中,而不是
System.Web
(可能您混淆了ASP.NET中使用的
HttpRequest
)。它在所有.NET Framework版本中都可用(包括Silverlight、WP7和客户端配置文件)

使用套接字实现您自己的简单HTTP客户端并不那么困难

只需使用TcpClient()

对于协议本身,请下拉到每个请求的连接范例。典型的GET请求如下所示:

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

请注意,您需要用一个简单的类来包装这段代码,该类提供类似HTTPWebRequest的语义。

您是对的,但我仍然不能使用HTTPWebRequest。我已经编辑了这个问题。你是对的,但我仍然不能使用HttpWebRequest。我已经编辑了这个问题。@eAi,你看过那篇文章的答案了吗?“解决这个问题的唯一方法是以某种方式使用UnityEngine.WWW类,而不是System.Net.WebClient”dreamora在下面的两篇文章中说:“在webplayer上,由于Unity 3中的跨域安全原因,它根本不受支持,这不是一个bug。如果你想请求,你必须使用WWW或自己在TCP客户端/TCP套接字上实现它。”。第二种选择就是我所寻找的——如果是这样的话,我将自己实现它,但我相信其他人以前也做过。@eAi,我以前从未做过,但祝你好运。然而,这听起来与原来的问题大不相同。我认为,如果您打开另一个问题,专门针对使用UnityIt的仍然是普通的C#代码的HTTP请求“实现TCP客户端/TCP套接字”,您将更有可能找到答案—Unity纯粹限制了我们可以使用的标准库。我现在主要实现了自己的HTTP代码,所以可能就是这样。如果有必要,我会提出一个新问题!是的,基本上我就是这么做的。奇怪的是,没有人写过这样的图书馆。对于基本情况来说很简单,但对于多部分MIME等来说会变得更复杂。
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
}