public async Task <string> SendOperationPostAsync(string apiKey, string url, string data) { if (string.IsNullOrWhiteSpace(url)) { throw new ArgumentException("url"); } if (string.IsNullOrWhiteSpace(apiKey)) { throw new ArgumentException("ApiKey"); } if (string.IsNullOrWhiteSpace(data)) { throw new ArgumentException("data"); } byte[] reqData = Encoding.UTF8.GetBytes(data); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add("Ocp-Apim-Subscription-Key", apiKey); request.ContentType = "application/json"; request.Accept = "application/json"; request.ContentLength = (long)reqData.Length; request.Method = "POST"; Stream requestStreamAsync = await request.GetRequestStreamAsync(); requestStreamAsync.Write(reqData, 0, reqData.Length); requestStreamAsync.Close(); HttpWebResponse responseAsync = (HttpWebResponse)await request.GetResponseAsync(); var opLocation = responseAsync.GetResponseHeader("operation-location"); responseAsync.Close(); return(opLocation); }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public static string PostUrl(string url, string postData) { try { //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; WebHeaderCollection headers = request.Headers; headers.Add("x-xsrf-token:" + token); request.ContentLength = Encoding.UTF8.GetBytes(postData).Length; request.AllowAutoRedirect = false; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("Cookie", cookie); request.Referer = "https://item.manager.taobao.com/taobao/manager/render.htm?tab=in_stock&table.sort.endDate_m=desc&spm=a217wi.openworkbeanchtmall"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); } catch (WebException ex) { return(ex.ToString()); } }
public string HTTPGet(string Url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "GET"; request.ProtocolVersion = new Version(1, 1); HttpWebResponse response = request.GetResponse() as HttpWebResponse; foreach (var item in response.Headers) { this.txt_header += item.ToString() + ";" + response.GetResponseHeader(item.ToString()) + System.Environment.NewLine; } File.WriteAllText("test.HTML", txt_header); if (response.ContentLength <= 0) { return(null); } byte[] bytes; using (Stream stream = response.GetResponseStream()) { int totalLength = (int)response.ContentLength; int numBytesRead = 0; bytes = new byte[totalLength + 1024]; while (numBytesRead < totalLength)//循环读取response.GetResponseStream()的值,每次最大长度为1024, { int num = stream.Read(bytes, numBytesRead, 1024); if (num == 0) { break; } numBytesRead += num; } } string content = Encoding.UTF8.GetString(bytes); File.AppendAllText("test.HTML", content); return(content); }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public string PostUrl(string url, string postData) { try { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; request.ContentType = "application/json"; request.ContentLength = postData.Length; // request.ContentLength = Encoding.UTF8.GetBytes(postData).Length; request.AllowAutoRedirect = false; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("pubArgs", pubArgs); // request.Referer = ""; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); } catch (WebException ex) { return(ex.ToString()); } }
/// <summary> /// Resolves any redirects at the specified URI. /// </summary> /// <param name="destination">The initial URI.</param> /// <param name="hopsLeft">The maximum number of redirects left to follow.</param> /// <param name="redirectHistory">A collection of <see cref="Uri"/> objects representing the redirect history.</param> /// <returns>The URI after resolving any HTTP redirects.</returns> private Uri Resolve(Uri destination, int hopsLeft, ICollection <Uri> redirectHistory) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destination); request.AllowAutoRedirect = false; request.Method = "HEAD"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Uri resolvedUri; if (response.StatusCode == HttpStatusCode.Redirect || response.StatusCode == HttpStatusCode.Moved || response.StatusCode == HttpStatusCode.MovedPermanently) { if (hopsLeft > 0) { Uri redirectUri = new Uri(response.GetResponseHeader("Location")); if (redirectHistory.Contains(redirectUri)) { throw new Exception("Recursive redirection found"); } redirectHistory.Add(redirectUri); resolvedUri = this.Resolve(redirectUri, hopsLeft - 1, redirectHistory); } else { throw new Exception("Maximum redirect depth reached"); } } else { resolvedUri = response.ResponseUri; } return(resolvedUri); }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public static string PostUrl(string url, string postData, string COOKIE, string charset) { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; //添加头部 //WebHeaderCollection headers = request.Headers; //headers.Add("appid:orders"); //headers.Add("x-nike-visitid:5"); //headers.Add("x-nike-visitorid:d03393ee-e42c-463e-9235-3ca0491475b4"); //添加头部 // request.ContentType = "application/json"; request.ContentLength = postData.Length; request.AllowAutoRedirect = true; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("Cookie", COOKIE); //request.Headers.Add("origin","https://www.nike.com"); request.Referer = "https://www.nike.com/orders/gift-card-lookup"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(charset)); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); }
public async Task HttpHeader_Set_Success() { await LoopbackServer.CreateServerAsync(async (server, url) => { HttpWebRequest request = WebRequest.CreateHttp(url); request.Method = HttpMethod.Get.Method; Task <WebResponse> getResponse = request.GetResponseAsync(); await server.AcceptConnectionSendResponseAndCloseAsync(HttpStatusCode.OK, "Content-Type: application/json;charset=UTF-8\r\n", "12345"); using (WebResponse response = await getResponse) { HttpWebResponse httpResponse = (HttpWebResponse)response; Assert.Equal("UTF-8", httpResponse.CharacterSet); Assert.Equal(HttpStatusCode.OK, httpResponse.StatusCode); Assert.Equal("OK", httpResponse.StatusDescription); CookieCollection cookieCollection = new CookieCollection(); httpResponse.Cookies = cookieCollection; Assert.Equal(cookieCollection, httpResponse.Cookies); Assert.Equal(5, httpResponse.ContentLength); Assert.Equal(5, int.Parse(httpResponse.GetResponseHeader("Content-Length"))); } }); }
/// <summary> /// Extracts and assigns the response header metadata. /// </summary> /// <param name="httpResponse"></param> /// <returns></returns> private static MwsResponseHeaderMetadata GetResponseHeaderMetadata(HttpWebResponse httpResponse) { var requestId = httpResponse.GetResponseHeader("x-mws-request-id"); var timestamp = httpResponse.GetResponseHeader("x-mws-timestamp"); var contextStr = httpResponse.GetResponseHeader("x-mws-response-context"); var context = new List <string>(contextStr.Split(',')); double?quotaMax; try { var quotaMaxStr = httpResponse.GetResponseHeader("x-mws-quota-max"); quotaMax = Double.Parse(quotaMaxStr); } catch (Exception) { quotaMax = null; } double?quotaRemaining; try { var quotaRemainingStr = httpResponse.GetResponseHeader("x-mws-quota-remaining"); quotaRemaining = Double.Parse(quotaRemainingStr); } catch (Exception) { quotaRemaining = null; } DateTime?quotaResetsAt; try { var quotaResetsAtStr = httpResponse.GetResponseHeader("x-mws-quota-resetsOn"); quotaResetsAt = MwsUtil.ParseTimestamp(quotaResetsAtStr); } catch (Exception) { quotaResetsAt = null; } return(new MwsResponseHeaderMetadata(requestId, context, timestamp, quotaMax, quotaRemaining, quotaResetsAt)); }
private string getSSOToken(string username, string password, bool sisi) { string accessToken = this.getAccessToken(username, password, sisi); string uri = "https://login.eveonline.com/launcher/token?accesstoken=" + accessToken; if (accessToken == null) { return(null); } if (sisi) { uri = "https://sisilogin.testeveonline.com/launcher/token?accesstoken=" + accessToken; } HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri); req.Timeout = 5000; req.AllowAutoRedirect = false; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); string ssoToken = this.extractAccessToken(resp.GetResponseHeader("Location")); resp.Close(); return(ssoToken); }
/// <summary> /// 从url读取内容到内存MemoryStream流中 /// </summary> /// <param name="url"></param> /// <param name="ext"></param> /// <returns></returns> private static Stream DownLoadFielToMemoryStream(string url, out string ext) { var wreq = WebRequest.Create(url) as HttpWebRequest; HttpWebResponse response = wreq.GetResponse() as HttpWebResponse; var filename = response.GetResponseHeader("Content-disposition"); ext = filename.Split("=").Last().Split(".").Last().Replace("\"", ""); MemoryStream ms = null; using (var stream = response.GetResponseStream()) { Byte[] buffer = new Byte[response.ContentLength]; int offset = 0, actuallyRead = 0; do { actuallyRead = stream.Read(buffer, offset, buffer.Length - offset); offset += actuallyRead; }while (actuallyRead > 0); ms = new MemoryStream(buffer); } response.Close(); return(ms); }
/// <summary> /// Uploads the binary stream by credential URI. /// </summary> /// <param name="blobUri">The BLOB URI.</param> /// <param name="stream">The stream.</param> /// <param name="contentType">Type of the content.</param> /// <param name="fileName">Name of the file.</param> /// <returns>ETag</returns> public override string UploadBinaryStreamByCredentialUri(string blobUri, Stream stream, string contentType, string fileName = null) { try { blobUri.CheckEmptyString("blobUri"); stream.CheckNullObject("stream"); // Upload a file using the pre-signed URL. var bucketName = GetBucketNameByCredentialUri(blobUri); var key = GetKeyByCredentialUri(blobUri); var streamBytes = stream.ReadStreamToBytes(); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); var md5hash = md5.ComputeHash(streamBytes).EncodeBase64(); HttpWebRequest httpRequest = WebRequest.Create(blobUri) as HttpWebRequest; httpRequest.Method = "PUT"; httpRequest.ContentType = contentType; httpRequest.Headers["x-amz-meta-md5hash"] = md5hash; if (!string.IsNullOrEmpty(fileName)) { httpRequest.Headers["Content-Disposition"] = fileName; } using (Stream dataStream = httpRequest.GetRequestStream()) { // Upload blob stream. dataStream.Write(streamBytes, 0, streamBytes.Length); } HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse; return(response.GetResponseHeader("ETag")); } catch (Exception ex) { throw ex.Handle(new { blobUri, contentType, fileName }); } }
public static string GetTicketGrantingTicket(string apiKey) { string url = AppSettings.UMLSTicketGrantingTicketURL; HttpWebRequest tgtRequest = (HttpWebRequest)HttpWebRequest.Create(url); tgtRequest.Method = "POST"; tgtRequest.ContentType = "application/x-www-form-urlencoded"; tgtRequest.Accept = "application/xml"; try { using (StreamWriter sw = new StreamWriter(tgtRequest.GetRequestStream())) { sw.Write("apikey=" + apiKey); } HttpWebResponse tgtResponse = (HttpWebResponse)tgtRequest.GetResponse(); if (tgtResponse.StatusCode != HttpStatusCode.Created) { return(null); } string location = tgtResponse.GetResponseHeader("Location"); if (string.IsNullOrEmpty(location) || location.IndexOf("TGT") < 0) { return(null); } return(location.Substring(location.IndexOf("TGT"))); } catch { return(null); } }
public static int DownloadBinary(string path, string file, string saveTo) { long num = 0L; HttpWebRequest wr = FUSRequest.Create("http://cloud-neofussvr.sslcs.cdngc.net/NF_DownloadBinaryForMass.do?file=" + path + file); wr.Method = "GET"; wr.Timeout = 0x61a8; wr.ReadWriteTimeout = 0x61a8; using (HttpWebResponse response = (HttpWebResponse)wr.GetFUSResponse()) { if (response == null) { Console.WriteLine("Error DownloadBinary(): response is null."); return(0x385); } if ((response.StatusCode != HttpStatusCode.OK) && (response.StatusCode != HttpStatusCode.PartialContent)) { Console.WriteLine("Error DownloadBinary(): " + ((int)response.StatusCode)); } else { long total = long.Parse(response.GetResponseHeader("content-length")) + num; byte[] buffer = new byte[0x2000]; try { File.HandleEncryptedFile(response.GetResponseStream(), saveTo); } catch (Exception exception) { Console.WriteLine("Error DownloadBinary(): "); Console.WriteLine(exception.ToString()); return(-1); } } return(0); } }
private void installOpenvpn() { addMsg("正准备安装openvpn..."); addMsg("正在下载openvpn安装程序..."); // 设置参数 HttpWebRequest request = WebRequest.Create(Functions.URL + "/static/openvpn.exe") as HttpWebRequest; //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream responseStream = response.GetResponseStream(); //创建本地文件写入流 Stream stream = new FileStream("install.exe", FileMode.Create); byte[] bArr = new byte[1024]; int length = int.Parse(response.GetResponseHeader("Content-Length")); int downloadLength = 0; int downloadSpeed = 0; int size = responseStream.Read(bArr, 0, (int)bArr.Length); while (size > 0) { downloadLength += size; if (((float)downloadLength / (float)length) * 40 > downloadSpeed) { addMsg("=", false); downloadSpeed++; } stream.Write(bArr, 0, size); size = responseStream.Read(bArr, 0, (int)bArr.Length); } stream.Close(); responseStream.Close(); addMsg("\n下载完成,准备进行安装..."); Functions.RunExe("install.exe", "/S /D=openvpn"); addMsg("安装完成,请重新尝试运行"); Functions.DeleteFile("install.exe"); }
/// <summary> /// Returns the latest version available. /// </summary> public static Version GetLatestVersion() { // Note: GitHub uses a HTTP redirect to redirect from the generic latest release page to the actual latest release page // Retrieve the redirect page from the GitHub latest release page HttpWebRequest request = HttpWebRequest.CreateHttp(Constants.LatestReleaseWebsite); request.AllowAutoRedirect = false; String redirectPage = ""; try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { redirectPage = response.GetResponseHeader("Location"); // redirectPage should be like "https://github.com/Otiel/BandcampDownloader/releases/tag/vX.X.X.X" } } catch { throw new CouldNotCheckForUpdatesException(); } // Extract the version number from the URL String latestVersionNumber = ""; try { latestVersionNumber = redirectPage.Substring(redirectPage.LastIndexOf("/v") + 2); // X.X.X.X } catch { throw new CouldNotCheckForUpdatesException(); } if (Version.TryParse(latestVersionNumber, out Version latestVersion)) { return(latestVersion); } else { throw new CouldNotCheckForUpdatesException(); } }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public static string PostUrl(string url, string postData, string COOKIE, string charset) { try { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; //request.ContentType = "application/json"; request.ContentLength = postData.Length; request.ContentLength = Encoding.UTF8.GetBytes(postData).Length; request.AllowAutoRedirect = false; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("Cookie", COOKIE); request.Referer = "https://mail.163.com/js6/main.jsp?sid=cBZNTotGUjWbvKFHDtGGQKnnrdhvIQXG&df=email163"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(charset)); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); } catch (WebException ex) { return(ex.ToString()); } }
/// <summary> /// 发送请求 /// </summary> /// <param name="url"></param> /// <param name="stream"></param> /// <param name="info"></param> public void SendRequest(string url, out Stream stream, out PageInfo info) { info = new PageInfo(); stream = null; try { req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"; req.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"); req.Headers.Add("Upgrade-Insecure-Requests", "1"); req.Headers.Add("Cache-Control", "max-age=0"); resp = (HttpWebResponse)req.GetResponse(); info.CharSet = resp.CharacterSet != "" ? resp.CharacterSet : "gb2312"; var ce = resp.GetResponseHeader("Content-Encoding"); info.IsGzip = !string.IsNullOrEmpty(ce) && ce.ToLower() == "gzip"; stream = resp.GetResponseStream(); } catch (Exception ex) { //TODO:请求url异常 } }
public static bool Login(string username, string password) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(COOKIE_URL); request.Method = "GET"; request.AllowAutoRedirect = false; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/66.4.120 Chrome/60.4.3112.120 Safari/537.36"; request.Headers.Add("Accept-Language:vi-VN,vi;q=0.8,fr-FR;q=0.6,fr;q=0.4,en-US;q=0.2,en;q=0.2"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); cookie = Regex.Replace(response.GetResponseHeader("Set-Cookie"), "( Domain=.+?;)|( Path=.{0,2})|( HttpOnly,)", ""); request = (HttpWebRequest)WebRequest.Create(LOGIN_URL); request.Method = "POST"; request.AllowAutoRedirect = false; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/66.4.120 Chrome/60.4.3112.120 Safari/537.36"; request.Headers.Add("Accept-Language:vi-VN,vi;q=0.8,fr-FR;q=0.6,fr;q=0.4,en-US;q=0.2,en;q=0.2"); request.Headers.Add("Cookie", cookie); var postData = $"TPL_username={HttpUtility.UrlEncode(username)}&TPL_password={HttpUtility.UrlEncode(password)}"; byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Flush(); dataStream.Close(); response = (HttpWebResponse)request.GetResponse(); return(HttpStatusCode.Found.Equals(response.StatusCode)); } catch (Exception e) { Console.Write(e); return(false); } }
/// <summary> /// Initially used via a response callback for commands which expect a async response /// </summary> /// <param name="webResponse">the HttpWebResponse that will be sent back to the user from the request</param> protected virtual void ResponseCallback(HttpWebResponse webResponse) { //Track and throw up the X-ms request id (x-ms-request-id) MsftAsyncResponseId = webResponse.GetResponseHeader("x-ms-request-id"); // Trace.WriteLine("Hosted Service Response Id: {0}", MsftAsyncResponseId); for (;;) { var asyncCommand = new GetAsyncStatusCommand { HttpVerb = HttpVerbGet, SubscriptionId = SubscriptionId, OperationId = MsftAsyncResponseId, ServiceType = "operations", Certificate = Certificate }; asyncCommand.Execute(); Thread.Sleep(1000); OperationStatus status = asyncCommand.GetOperationStatus(); switch (status) { case OperationStatus.InProgress: break; case OperationStatus.Failed: //Trace.WriteLine(String.Format("Hosted Service Response Id: {0}", MsftAsyncResponseId); _lastFailureResponse = asyncCommand.GetFailureText(); SitAndWait.Set(); return; case OperationStatus.Succeeded: //Trace.WriteLine("Hosted Service Response Id: {0}", MsftAsyncResponseId); SitAndWait.Set(); return; } } }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public static string PostUrl(string url, string postData) { try { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; request.ContentType = "multipart/form-data; boundary=----WebKitFormBoundary6hBArAxW0nlIcAAV"; request.ContentLength = postData.Length; //request.ContentLength = Encoding.UTF8.GetBytes(postData).Length; request.AllowAutoRedirect = false; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("Cookie", COOKIE); request.Referer = "https://wenku.baidu.com/nduc/browse/uc?_page=mydocsupload&st=1&_redirect=1"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); } catch (WebException ex) { return(ex.ToString()); } }
private void volvoLogin() { HttpWebRequest request = null; HttpWebResponse response = null; try { var postData = "Ecom_User_ID=" + _userID; postData += "&Ecom_Password="******"&portletlogin=Login"; var data = Encoding.ASCII.GetBytes(postData); request = (HttpWebRequest)WebRequest.Create("https://vcamlogin.volvocars.biz/nidp/saml2/sso"); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.Host = "vcamlogin.volvocars.biz"; request.ContentLength = data.Length; request.AllowAutoRedirect = false; using (var stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } response = (HttpWebResponse)request.GetResponse(); HttpStatusCode statuscode = response.StatusCode; string header = response.GetResponseHeader("Set-Cookie"); string[] headers = header.Split(';', ','); vidaLoginStepTwo(headers[0], headers[4]); } catch (WebException e) { } }
/// <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">发送的数据包</param> /// <param name="COOKIE">cookie</param> /// <param name="charset">编码格式</param> /// <returns></returns> public static string PostUrl(string url, string postData, string COOKIE, string charset) { try { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //获取不到加上这一条 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "Post"; WebHeaderCollection headers = request.Headers; headers.Add("authorization: Bearer " + token); request.ContentType = "application/json"; request.ContentLength = Encoding.UTF8.GetBytes(postData).Length; //request.ContentLength = postData.Length; request.KeepAlive = true; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"; request.Headers.Add("Cookie", COOKIE); request.Referer = "https://www.tcpjw.com/B2BHall"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); HttpWebResponse response = request.GetResponse() as HttpWebResponse; //获取反馈 response.GetResponseHeader("Set-Cookie"); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(charset)); //reader.ReadToEnd() 表示取得网页的源码流 需要引用 using IO string html = reader.ReadToEnd(); reader.Close(); response.Close(); return(html); } catch (WebException ex) { return(ex.ToString()); } }
public string GetDownloadFileInfo(string http_url, string ImportCookiestr) { //https://airdental.inteware.com.tw/api/project/prostheses/download/5eccc648d6ea6e0b50f0239d try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(http_url); request.Credentials = CredentialCache.DefaultCredentials; request.Headers.Add("Cookie", ImportCookiestr); request.UserAgent = ".NET Framework Example Client"; request.Method = "GET"; //Response資料 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string FileName = response.GetResponseHeader("Content-disposition"); FileName = FileName.Substring(FileName.LastIndexOf(@"'")); FileName = UrlDecode(FileName.Replace(@"'", "")); long FileSize = response.ContentLength; response.Close(); return(FileName); } catch { return(null); } }
private static void print_log(HttpWebResponse response) { Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse, System.Text.Encoding.GetEncoding(-0)); string content_length = response.GetResponseHeader("Content-Length"); if (content_length == "") { streamResponse.Close(); streamRead.Close(); return; } if (Int32.Parse(content_length) <= 0) { streamResponse.Close(); streamRead.Close(); return; } Char[] readBuff = new Char[256]; int count = streamRead.Read(readBuff, 0, 256); Console.WriteLine("The contents of the Html page are.......\n"); while (count > 0) { String outputData = new String(readBuff, 0, count); Console.Write(outputData); count = streamRead.Read(readBuff, 0, 256); } Console.WriteLine(); // Close the Stream object. streamResponse.Close(); streamRead.Close(); }
public static string GetRedirectUrl(string url) { try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "HEAD"; req.Timeout = 5000; req.Referer = ""; req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36"; req.Headers.Add("Cookie", "MONITOR_WEB_ID=2b91ee0d-614c-44e9-bd15-0dbbe27f05c8"); req.AllowAutoRedirect = false; HttpWebResponse myResp = (HttpWebResponse)req.GetResponse(); //if (myResp.StatusCode == HttpStatusCode.Redirect) //{ // url = myResp.GetResponseHeader("Location"); //} url = myResp.GetResponseHeader("location"); return(url); } catch (Exception ex) { return(""); } }
public static string RedirectPath(string url) { StringBuilder sb = new StringBuilder(); string location = string.Copy(url); while (!string.IsNullOrWhiteSpace(location)) { sb.AppendLine(location); // you can also use 'Append' HttpWebRequest request = HttpWebRequest.CreateHttp(location); request.AllowAutoRedirect = false; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { location = response.GetResponseHeader("Location"); if (location.Contains("%3D") && location.Contains("%26")) { var leftIndex = location.IndexOf("%3D"); var rightIndex = location.IndexOf("%26"); var appId = location.Substring(leftIndex + 3, rightIndex - leftIndex - 3); Console.WriteLine($"AppId:{appId}"); } } } return(sb.ToString()); }
/** * Invoke request and return response */ private T Invoke <T>(IDictionary <String, String> parameters) { String actionName = parameters["Action"]; T response = default(T); String responseBody = null; HttpStatusCode statusCode = default(HttpStatusCode); ResponseHeaderMetadata rhm = null; if (String.IsNullOrEmpty(config.ServiceURL)) { throw new MarketplaceWebServiceProductsException( new ArgumentException( "Missing serviceURL configuration value. You may obtain a list of valid MWS URLs by consulting the MWS Developer's Guide, or reviewing the sample code published along side this library.")); } /* Add required request parameters */ AddRequiredParameters(parameters); String queryString = GetParametersAsString(parameters); byte[] requestData = new UTF8Encoding().GetBytes(queryString); bool shouldRetry = true; int retries = 0; do { HttpWebRequest request = ConfigureWebRequest(requestData.Length); /* Submit the request and read response body */ try { using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(requestData, 0, requestData.Length); } using (HttpWebResponse httpResponse = request.GetResponse() as HttpWebResponse) { statusCode = httpResponse.StatusCode; rhm = new ResponseHeaderMetadata( httpResponse.GetResponseHeader("x-mws-request-id"), httpResponse.GetResponseHeader("x-mws-response-context"), httpResponse.GetResponseHeader("x-mws-timestamp")); StreamReader reader = new StreamReader(httpResponse.GetResponseStream(), Encoding.UTF8); responseBody = reader.ReadToEnd(); } /* Attempt to deserialize response into <Action> Response type */ XmlSerializer serializer = new XmlSerializer(typeof(T)); using (StringReader responseReader = new StringReader(responseBody)) { response = (T)serializer.Deserialize(responseReader); PropertyInfo pi = typeof(T).GetProperty("ResponseHeaderMetadata"); pi.SetValue(response, rhm, null); } shouldRetry = false; } /* Web exception is thrown on unsucessful responses */ catch (WebException we) { shouldRetry = false; using (HttpWebResponse httpErrorResponse = (HttpWebResponse)we.Response as HttpWebResponse) { if (httpErrorResponse == null) { throw new MarketplaceWebServiceProductsException(we); } statusCode = httpErrorResponse.StatusCode; using (StreamReader reader = new StreamReader(httpErrorResponse.GetResponseStream(), Encoding.UTF8)) { responseBody = reader.ReadToEnd(); } } /* Attempt to deserialize response into ErrorResponse type */ using (StringReader responseReader = new StringReader(responseBody)) { try { XmlSerializer serializer = new XmlSerializer(typeof(ErrorResponse)); ErrorResponse errorResponse = (ErrorResponse)serializer.Deserialize(responseReader); Error error = errorResponse.Error[0]; bool retriableError = (statusCode == HttpStatusCode.InternalServerError || statusCode == HttpStatusCode.ServiceUnavailable); retriableError = retriableError && !(REQUEST_THROTTLED_ERROR_CODE.Equals(error.Code)); if (retriableError && retries < config.MaxErrorRetry) { shouldRetry = true; PauseOnRetry(++retries, statusCode, rhm); continue; } else { shouldRetry = false; } /* Throw formatted exception with information available from the error response */ throw new MarketplaceWebServiceProductsException( error.Message, statusCode, error.Code, error.Type, errorResponse.RequestId, errorResponse.ToXML(), rhm); } catch (MarketplaceWebServiceProductsException mwsErr) { throw mwsErr; } catch (Exception e) { throw ReportAnyErrors(responseBody, statusCode, rhm, e); } } } /* Catch other exceptions, attempt to convert to formatted exception, * else rethrow wrapped exception */ catch (Exception e) { throw new MarketplaceWebServiceProductsException(e); } } while (shouldRetry); return(response); }
static void Main(string[] args) { /************* * Login **************/ try { Console.Write("Try login... "); // payload - {"remember":true,"email":"email","password":"******"} string payloadStr = "{\"remember\":true,\"email\":\"" + email + "\",\"password\":\"" + password + "\"}"; // Set payload byte[] payload = Encoding.UTF8.GetBytes(payloadStr); // Create request HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(loginUrl); webRequest.Method = "POST"; // Write to request stream Stream reqStream = webRequest.GetRequestStream(); reqStream.Write(payload, 0, payload.Length); // Retrieve response HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); Stream respStream = response.GetResponseStream(); //Print response using (StreamReader reader = new StreamReader(respStream)) { foreach (string headerName in response.Headers.Keys) { if (headerName == "Set-Cookie") { cookieInfo = response.GetResponseHeader(headerName); xsrfToken = cookieInfo.Substring(56, 40); Console.Write("SUCCESS"); Console.WriteLine(); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(); } /************* * Stats **************/ try { Console.Write("Try stats... "); // payload - {"chart":"progress","sb_id":"sboardId","stat_id":null,"dates":{"dateFrom":"dateFrom","dateTo":"dateTo"}} string payloadStr = "{\"chart\":\"progress\",\"sb_id\":" + sboardId + ",\"stat_id\":null,\"dates\":{\"dateFrom\":\"" + dateFrom + "\",\"dateTo\":\"" + dateTo + "\"}}"; // Set payload byte[] payload = Encoding.UTF8.GetBytes(payloadStr); // Create request HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(statsUrl); webRequest.Method = "POST"; webRequest.Headers.Add("Cookie:" + cookieInfo); webRequest.Headers.Add("X-XSRF-TOKEN:" + xsrfToken); // Write to request stream Stream reqStream = webRequest.GetRequestStream(); reqStream.Write(payload, 0, payload.Length); // Retrieve response HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); Stream respStream = response.GetResponseStream(); //Print response using (StreamReader reader = new StreamReader(respStream)) { dynamic jsonResponse = JSON.JsonConvert.DeserializeObject(reader.ReadToEnd()); string index = ""; Console.Write("SUCCESS"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Results from " + dateFrom + " to " + dateTo); Console.WriteLine("-------------------------------------"); // Output to console/file using (StreamWriter writer = new StreamWriter(outputPath)) { writer.WriteLine("0,10,20,30,40,50,60,70,80,90,100"); for (int i = 0; i <= 10; i++) { index = (i > 0) ? i.ToString() + "0" : i.ToString(); writer.Write((i == 10) ? jsonResponse["result"]["data"][index] : jsonResponse["result"]["data"][index] + ","); Console.WriteLine(index + "% : " + jsonResponse["result"]["data"][index] + " people"); } } Console.WriteLine(); Console.WriteLine("Generate time: " + jsonResponse["result"]["generate_time"]); Console.WriteLine("Generated on: " + DateTime.Now.ToString()); Console.WriteLine(); Console.WriteLine("Output to: " + outputPath); } } catch (Exception ex) { Console.WriteLine("UNSUCCESSFUL: " + ex.Message); Console.WriteLine(); } /************* * Logout **************/ try { Console.Write("Try logout..."); // Create request HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(logoutUrl); webRequest.Method = "POST"; webRequest.Headers.Add("Cookie:" + cookieInfo); webRequest.Headers.Add("X-XSRF-TOKEN:" + xsrfToken); // Retrieve response HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); Stream respStream = response.GetResponseStream(); //Print response using (StreamReader reader = new StreamReader(respStream)) { dynamic jsonResponse = JSON.JsonConvert.DeserializeObject(reader.ReadToEnd()); Console.Write((jsonResponse["success"] == "True") ? " Logged out successfully" : " Logout failed"); Console.WriteLine(); } } catch (Exception ex) { Console.WriteLine("UNSUCCESSFUL: " + ex.Message); } }
//#if !NET35 && !NET40 /// <summary> /// 从Url下载,并保存到指定目录 /// </summary> /// <param name="url">需要下载文件的Url</param> /// <param name="filePathName">保存文件的路径,如果下载文件包含文件名,按照文件名储存,否则将分配Ticks随机文件名</param> /// <param name="timeOut">超时时间</param> /// <returns></returns> public static string Download(string url, string filePathName, int timeOut = 999) { var dir = Path.GetDirectoryName(filePathName) ?? "/"; Directory.CreateDirectory(dir); #if NET35 || NET40 || NET45 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Timeout = timeOut; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream responseStream = response.GetResponseStream()) { string responseFileName = null; var contentDescriptionHeader = response.GetResponseHeader("Content-Disposition"); if (!string.IsNullOrEmpty(contentDescriptionHeader)) { var fileName = Regex.Match(contentDescriptionHeader, @"(?<=filename="")([\s\S]+)(?= "")", RegexOptions.IgnoreCase).Value; responseFileName = Path.Combine(dir, fileName); } var fullName = responseFileName ?? Path.Combine(dir, GetRandomFileName()); using (var fs = File.Open(filePathName, FileMode.OpenOrCreate)) { byte[] bArr = new byte[1024]; int size = responseStream.Read(bArr, 0, (int)bArr.Length); while (size > 0) { fs.Write(bArr, 0, size); fs.Flush(); size = responseStream.Read(bArr, 0, (int)bArr.Length); } } return(fullName); } #else System.Net.Http.HttpClient httpClient = SenparcDI.GetRequiredService <SenparcHttpClient>().Client; using (var responseMessage = httpClient.GetAsync(url).Result) { if (responseMessage.StatusCode == HttpStatusCode.OK) { string responseFileName = null; //ContentDisposition可能会为Null if (responseMessage.Content.Headers.ContentDisposition != null && responseMessage.Content.Headers.ContentDisposition.FileName != null && responseMessage.Content.Headers.ContentDisposition.FileName != "\"\"") { responseFileName = Path.Combine(dir, responseMessage.Content.Headers.ContentDisposition.FileName.Trim('"')); } var fullName = responseFileName ?? Path.Combine(dir, GetRandomFileName()); using (var fs = File.Open(fullName, FileMode.Create)) { using (var responseStream = responseMessage.Content.ReadAsStreamAsync().Result) { responseStream.CopyTo(fs); fs.Flush(); } } return(fullName); } else { return(null); } } #endif }
public static void Main(string[] args) { String url = "http://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json"; String appcode = "你自己的AppCode"; String img_file = "图片路径"; //如果输入带有inputs, 设置为True,否则设为False bool is_old_format = false; //如果没有configure字段,config设为'' //String config = ''; String config = "{\\\"side\\\":\\\"face\\\"}"; String method = "POST"; String querys = ""; FileStream fs = new FileStream(img_file, FileMode.Open); BinaryReader br = new BinaryReader(fs); byte[] contentBytes = br.ReadBytes(Convert.ToInt32(fs.Length)); String base64 = System.Convert.ToBase64String(contentBytes); String bodys; if (is_old_format) { bodys = "{\"inputs\" :" + "[{\"image\" :" + "{\"dataType\" : 50," + "\"dataValue\" :\"" + base64 + "\"" + "}"; if (config.Length > 0) { bodys += ",\"configure\" :" + "{\"dataType\" : 50," + "\"dataValue\" : \"" + config + "\"}" + "}"; } bodys += "]}"; } else { bodys = "{\"image\":\"" + base64 + "\""; if (config.Length > 0) { bodys += ",\"configure\" :\"" + config + "\""; } bodys += "}"; } HttpWebRequest httpRequest = null; HttpWebResponse httpResponse = null; if (0 < querys.Length) { url = url + "?" + querys; } if (url.Contains("https://")) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url)); } else { httpRequest = (HttpWebRequest)WebRequest.Create(url); } httpRequest.Method = method; httpRequest.Headers.Add("Authorization", "APPCODE " + appcode); //根据API的要求,定义相对应的Content-Type httpRequest.ContentType = "application/json; charset=UTF-8"; if (0 < bodys.Length) { byte[] data = Encoding.UTF8.GetBytes(bodys); using (Stream stream = httpRequest.GetRequestStream()) { stream.Write(data, 0, data.Length); } } try { httpResponse = (HttpWebResponse)httpRequest.GetResponse(); } catch (WebException ex) { httpResponse = (HttpWebResponse)ex.Response; } if (httpResponse.StatusCode != HttpStatusCode.OK) { Console.WriteLine("http error code: " + httpResponse.StatusCode); Console.WriteLine("error in header: " + httpResponse.GetResponseHeader("X-Ca-Error-Message")); Console.WriteLine("error in body: "); Stream st = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8")); Console.WriteLine(reader.ReadToEnd()); } else { Stream st = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8")); Console.WriteLine(reader.ReadToEnd()); } Console.WriteLine("\n"); }