Tag: httpwebrequest

HttpWebRequest虚拟按钮单击

我有我的html-php网页,包含表单,输入和sumbit按钮。 使用html请求我试图填写一些字段并按下按钮,但我不能。 这是C#代码: public static string PostData(string data) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(“http://localhost/request.php”); //http://businesslist.com/search/clients/?m=userspace&d=addclassified request.Method = “POST”; request.AllowAutoRedirect = true; request.ContentType = “application/x-www-form-urlencoded”; byte[] EncodedPostParams = Encoding.UTF8.GetBytes(data); request.ContentLength = EncodedPostParams.Length; request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length); request.GetRequestStream().Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string str = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd(); return str; } static void Main(string[] args) { string data = […]

调用Url来检查内容类型?

我需要检查url内容类型是否为pdf? 我有一个工作代码,但我想知道什么是最好的方式来检查我有什么。 我不需要显示pdf,只需要检查内容类型是否为pdf? 注意:此方法将使用不同的url多次调用,因此我不确定是否需要关闭响应。 这是我的代码。 private bool IsValid(string url) { bool isValid = false; var request = (HttpWebRequest)WebRequest.Create(url); var response = (HttpWebResponse)request.GetResponse(); if(response.StatusCode == HttpStatusCode.OK && response.ContentType == “application/pdf”) { isValid = true; } response.Close(); return isValid; }

PayPal API,HttpWebRequest抛出SSL WebException

我正在尝试获取PayPal访问令牌,如下所示: https : //developer.paypal.com/docs/integration/direct/make-your-first-call/#get-an-access-token 我的C#代码如下所示: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(“https://api.sandbox.paypal.com/v1/oauth2/token”); request.Headers[“Authorization”] = “Basic ” + Convert.ToBase64String(Encoding.Default.GetBytes(clientId + “:” + clientSecret)); request.Accept = “application/json”; request.Headers.Add(“Accept-Language”, “en_US”); request.Method = “POST”; request.ContentType = “application/x-www-form-urlencoded”; request.Timeout = 10000; byte[] postBytes = Encoding.ASCII.GetBytes(“grant_type=client_credentials”); request.ContentLength = postBytes.Length; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; Stream postStream = request.GetRequestStream(); // […]

跨多个HttpWebRequests使用相同的CookieContainer是否安全?

我正在做一种WebCrawler,我需要在请求之间保持Cookies状态。 我下载所有页面异步创建新的HttpWebRequest实例,但设置相同的CookieContainer。 页面可以写入和读取cookie。 我可以安全地做吗? 有没有任何替代方法不是CookieContainer的子类并在所有方法中放置锁? MSDN说这个类不是线程安全的,但在实践中,我能做到吗?

C#HttpWebRequest.GetResponse – 如何处理非exception与webexception响应的StatusCode用法?

有人可以帮助清除HttpWebResponse和WebException中“StatusCode”属性的用法吗? 例如,似乎如果: a)没有exception,那么HttpWebResponse将有一个StatusCode可以有一些值,表明两者: – 成功(例如OK,Accepted等) – 失败(例如UseProxy,RequestTimeout等) b)有一个WebExeption throw,它本身有一个响应对象,它还有一个StatusCode(我假设它是基于相同的HttpStatusCode枚举)。 问题1 – 在StatusCode将触发WebException的情况下是否存在任何一致性(并且您将在exception中获取详细信息),相比之下没有exception会返回但是您会在StatusCode中找到结果响应对象? 问题2 – 或者更具体地说,尝试处理httpWebRequest.GetResponse调用的pseduo代码(或C#代码本身)是什么,以便您想要区分用户的响应类别: 代理设置/代理问题=>所以可以告诉用户修复代理设置 连接问题/ web-server down =>所以用户意识到这一点 服务器端错误(例如服务器在那里但是处理请求时存在问题 – 例如内容不存在)=>因此用户可以通过网站管理员加薪 成功案例(我认为这不仅仅是OK)=> na(成功案例) 谢谢

HttpWebRequest.BeginGetResponse

我需要向Web资源发出异步请求并使用此页面中的示例( 链接到完整示例 ): HttpWebRequest myHttpWebRequest= (HttpWebRequest)WebRequest.Create(“http://www.contoso.com”); RequestState myRequestState = new RequestState(); myRequestState.request = myHttpWebRequest; // Start the asynchronous request. IAsyncResult result= (IAsyncResult) myHttpWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState); 但是当我测试应用程序时,执行冻结(在2-3秒内)在此代码的最后一行(我可以使用调试器观察它)。 为什么? 这是我的错误还是函数的标准行为?

文件通过visual studio下载,但不是通过.exe下载

当我尝试通过我的.exe文件从URL下载.pdf文件时,我得到以下错误。 服务器提交了协议违规。 Section = ResponseHeader Detail = CR必须后跟LF 但是当我尝试从visual studio调试代码时,同样会下载。 我完全迷失了,不知道最近发生了什么。 有人可以告诉我可能是什么问题 我的App.config文件 useUnsafeHeaderParsing=”true”是一个明显的解决方案,每个人都在互联网上说不幸它不工作 这是我的webclient代码 public class CookieAwareWebClient : WebClient { private CookieContainer cc = new CookieContainer(); private string lastPage; protected override WebRequest GetWebRequest(Uri address) { if (address.Scheme == Uri.UriSchemeHttps) { ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072 | SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls; // allows for validation of SSL conversations […]

异步I / O(从异步webrequest读取流)

尝试从异步webrequest中读取ToEnd时,我遇到了一些问题。 这是代码: public void GetHTTP(string http) { request = (HttpWebRequest)WebRequest.Create(http); RequestState rs = new RequestState(); // Class to hold state. Can ignore… Setup(); // contain statements such as request.Accept =…; rs.Request = request; IAsyncResult r = (IAsyncResult)request.BeginGetResponse(new AsyncCallback ResponseSetup), rs); allDone.WaitOne(); Referer = http; //Can ignore this… } private void ResponseSetup(IAsyncResult ar) { RequestState rs […]

当HttpRequest.Content.IsMimeMultipartContent()返回true时返回false

我需要将一个HTTP请求作为MultiPartFormData发送到REST控制器。 它工作正常,但现在我的控制器上的检查声称请求的类型不正确,即使我在调试器中看到请求的类型正确。 以供参考: 这是调用它的控制台应用程序代码: using System; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace QuickUploadTestHarness { class Program { static void Main(string[] args) { using (var client = new HttpClient()) using (var content = new MultipartFormDataContent()) { // Make sure to change API address client.BaseAddress = new Uri(“http://localhost”); // Add first file content var […]

服务器提交了协议违规。 Section =使用tor代理时的ResponseStatusLine

我正在尝试使用我的asp.net应用程序使用tor代理发送httpwebrequest,并在调用webresponse.GetResponse()方法时收到此错误消息: 服务器提交了协议违规。 第= ResponseStatusLine 我尝试在网上搜索解决方案,我找到了3个主要解决方案: 添加到Web.config。 ` 添加以下行: webRequest.ProtocolVersion = HttpVersion.Version10; 到代码。 添加行request.ServicePoint.Expect100Continue = false; 到代码。 列出的每个解决方案都没有改变错误消息。 这是请求代码: WebRequest.DefaultWebProxy = new WebRequest(“127.0.0.1:9051”); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.CookieContainer = new CookieContainer(); webRequest.ProtocolVersion = HttpVersion.Version10; webRequest.KeepAlive = false; webRequest.Method = “GET”; webRequest.ContentType = “application/x-www-form-urlencoded”; webRequest.Accept = “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”; webRequest.UserAgent = “Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) […]