Tag: httpwebrequest

填写表格C#和发布错误

我举了一个例子,用另一个问题在C#中填写一个表单,但是当我运行代码时,我只是再次返回页面(好像我没有提交任何内容)。 我尝试手动转到URL并添加了?variable=value&variable2=value2但是这似乎没有预先填充表单,不确定这是否是为什么这不起作用。 private void button2_Click(object sender, EventArgs e) { var encoding = new ASCIIEncoding(); var postData = “appid=001”; postData += (“&email=chris@test.com”); postData += (“&receipt=testing”); postData += (“&machineid=219481142226.1”); byte[] data = encoding.GetBytes(postData); var myRequest = (HttpWebRequest)WebRequest.Create(“http://www.example.com/licensing/check.php”); myRequest.Method = “POST”; myRequest.ContentType = “application/x-www-form-urlencoded”; myRequest.ContentLength = data.Length; var newStream = myRequest.GetRequestStream(); newStream.Write(data, 0, data.Length); newStream.Close(); var response = […]

(500)内部服务器错误 – 使用api发送Web请求时

我发送Web请求并获取内部服务器错误:500。 我怎样才能确定哪一方对此错误负责? 我的身边还是外面的api边? 我在事件查看器中没有看到日志。 这是我的代码: var request = WebRequest.Create(“http://saas.appoxee.com/api/”) as HttpWebRequest; request.Method = WebRequestMethods.Http.Post; request.ContentType = “application/json”; // Add the content to the request string postDataJsonFormat = CreateExampleTagRequest(); byte[] byteArray = Encoding.UTF8.GetBytes(postDataJsonFormat); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); // Getting and processing the response var response = request.GetResponse() as HttpWebResponse;

错误(HttpWebRequest):要写入流的字节数超过指定的Content-Length字节大小

我似乎无法弄清楚为什么我一直收到以下错误: Bytes to be written to the stream exceed the Content-Length bytes size specified. 在以下行: writeStream.Write(bytes, 0, bytes.Length); 这是在Windows窗体项目上。 如果有人知道这里发生了什么,我肯定欠你一个。 private void Post() { HttpWebRequest request = null; Uri uri = new Uri(“xxxxx”); request = (HttpWebRequest)WebRequest.Create(uri); request.Method = “POST”; request.ContentType = “application/x-www-form-urlencoded”; XmlDocument doc = new XmlDocument(); doc.Load(“XMLFile1.xml”); request.ContentLength = doc.InnerXml.Length; using (Stream writeStream = […]

使用C#发送POST数据

这是我尝试用来将POST数据发送到URL并恢复其响应的方法: public string sendPOST(string URL, string postData) { byte[] byteArray; Stream webpageStream; StreamReader webpageReader; String webpageContent; byteArray = Encoding.UTF8.GetBytes(postData); _webRequest = WebRequest.Create(URL); _webRequest.Method = “POST”; _webRequest.ContentType = “application/x-www-form-urlencoded”; _webRequest.ContentLength = byteArray.Length; webpageStream = _webRequest.GetResponse().GetResponseStream(); webpageStream.Write(byteArray, 0, byteArray.Length); webpageStream.Close(); webpageReader = new StreamReader(webpageStream); webpageContent = webpageReader.ReadToEnd(); return webpageContent; } 我从MSDN网页上获得了很多这样的代码,所以我知道我大致走在正确的轨道上……但是当我使用以下方法调用该方法时: string test = webHelper.sendPOST(“http://google.com”, “var=1”); MessageBox.Show(test); […]

Async和Await与HttpWebRequest.GetResponseAsync

我正在尝试在发出Web请求时使用Async和Await,并且发现它永远不会超过await行。 我是通过Metro应用程序执行此操作,但我也在winforms应用程序中validation了该问题。 public async Task DoSomething() { string url = “http://imgur.com/gallery/VcBfl.json”; HttpWebRequest request = HttpWebRequest.CreateHttp(url); var ws = await request.GetResponseAsync(); return ws.ResponseUri.ToString(); ; } 如果我不使用await而是执行同步等待,它可以工作,但我需要它以异步方式运行。 我在这段代码中遗漏了什么导致await永不返回?

从C#应用程序到Firefox扩展的通信

我需要从我的C#应用​​程序发送一些字符串(名称,编号)到我的Firefox扩展,我已经阅读了一些做但不知道如何实现它的技巧。 管道 套接字(HTTP请求) 如果它使用HTTP请求更好。 UPDATE onSocketAccepted : function(socket, transport) { alert(“came”) var input =transport.openInputStream(0, 0, 0); alert(input) } 我从C#应用程序发送的消息是否在var输入?

HttpWebRequest将凭据传递给下一个HttpWebRequest

我正在使用HttpWebRequest登录页面并获取一些信息。 然后我使用该信息创建一个新的HttpWebRequest以获取更多信息。 我不想使用WebClient。 如何将使用第一个HttpWebRequest登录时获得的凭据传递给第二个? 编辑:如果我使用CookieCollection,那么这将是空的。 我只是尝试使用WebClient作为最后的手段,即使它没有工作,第二个请求将我带回登录屏幕。 我注意到在WebBrowser中有一个cookie。

如何在C#中执行快速Web请求

我有一个基于HTTP的API,我可能需要多次调用。 问题是我无法获得少于约20秒的请求,尽管通过浏览器发出的相同请求几乎是即时的。 以下代码说明了到目前为止我是如何实现它的。 WebRequest r = HttpWebRequest.Create(“https://example.com/http/command?param=blabla”); var response = r.GetResponse(); 一种解决方案是进行异步请求,但我想知道为什么需要这么长时间,如果我可以避免它。 我也尝试过使用WebClient类,但我怀疑它在内部使用WebRequest。 更新: 在发布模式下运行以下代码大约需要40秒(使用秒表测量): WebRequest g = HttpWebRequest.Create(“http://www.google.com”); var response = g.GetResponse(); 我在一所大学工作,网络配置可能会有不同的因素影响性能,但直接使用浏览器表明它应该接近即时。 更新2: 我将代码上传到远程计算机并且工作正常,因此结论必须是.NET代码与浏览器相比做了额外的事情,或者它在通过大学网络解决地址时遇到了问题(代理问题还是什么?!)。

如何在.net HttpWebRequest中自动检测/使用IE代理设置

是否可以检测/重用这些设置? 怎么样 ? 我得到的例外是这是连接到http://www.google.com时的例外情况 System.Net.WebException: Unable to connect to the remote server —> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 66.102.1.99:80 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket […]

C#:“使用”语句与HttpWebRequests / HttpWebResponses

Jon Skeet在我的SOApiDotNet代码(用于pre-alpha Stack Overflow API的.NET库)上发表评论(通过推特 ): @ maximz2005我注意到的一件事就是快速浏览源代码:你没有处理(原文如此)的WebResponses。 FTW“使用”声明。 他表示我需要在“使用”语句中包装这些Web会话。 但是,我对此有一个疑问:我应该从HttpWebRequest开始包装整个事情, 还是应该在“using”语句之外创建WebRequest然后将Response包装在里面 ? 我感觉不同的是,在前者中,两个物体都会被处理掉 – 这是正确的吗? 提前致谢。