Private Function getPageBytes(ByVal url As [String], ByVal paramList As NameValueCollection, ByVal wideCharEncoding As System.Text.Encoding, ByVal method As String, ByVal resetCookie As Boolean) As Byte()
Dim res As HttpWebResponse = Nothing
Dim result As New System.Collections.ArrayList(5000)
Try
Dim req As HttpWebRequest = Nothing
'如果是发送HTTPS请求
If url.StartsWith("https", StringComparison.OrdinalIgnoreCase) Then
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CheckValidationResult)
ServicePointManager.SecurityProtocol = CType(&HC0 Or &H300 Or &HC00, SecurityProtocolType)
req = TryCast(WebRequest.Create(url), HttpWebRequest)
req.ProtocolVersion = HttpVersion.Version10
Else
req = TryCast(WebRequest.Create(url), HttpWebRequest)
End If
req.AllowAutoRedirect = False
req.Method = method
req.Timeout = TIMEOUT
'上行方式时,设置参数
If method.ToUpper() <> "GET" Then
Dim UrlEncoded As New StringBuilder()
Dim reserved As [Char]() = {"?"c, "="c, "&"c}
Dim SomeBytes As Byte() = Nothing
If paramList IsNot Nothing Then
Dim paramBuilder As New System.Text.StringBuilder()
Dim paramstr As [String] = Nothing
For li As Integer = 0 To paramList.Keys.Count - 1
If li > 0 Then
paramBuilder.Append("&")
End If
If paramList.Keys(li) <> "" Then
paramBuilder.Append(paramList.Keys(li))
paramBuilder.Append("=")
End If
paramBuilder.Append(paramList(paramList.Keys(li)))
Next
paramstr = paramBuilder.ToString()
SomeBytes = Encoding.UTF8.GetBytes(paramstr)
req.ContentLength = SomeBytes.Length
Dim newStream As Stream = req.GetRequestStream()
newStream.Write(SomeBytes, 0, SomeBytes.Length)
newStream.Close()
Else
req.ContentLength = 0
End If
End If
'请求响应
res = DirectCast(req.GetResponse(), HttpWebResponse)
m_Status = res.StatusCode
If resetCookie Then
Me.m_cookieheader = req.CookieContainer.GetCookieHeader(New Uri(url))
End If
Dim ReceiveStream As Stream = res.GetResponseStream()
Dim sr As System.IO.BinaryReader = Nothing
If res.ContentEncoding = "gzip" Then
Dim stream As New GZipStream(ReceiveStream, CompressionMode.Decompress)
sr = New BinaryReader(stream)
Else
sr = New BinaryReader(ReceiveStream)
End If
'读取数据
Dim read As Byte() = New Byte(255) {}
Dim count As Integer = sr.Read(read, 0, 256)
While count > 0
result.AddRange(GetSubBytes(read, 0, count))
count = sr.Read(read, 0, 256)
End While
Catch ex As Exception
Dim tmp As String = ex.Message
result.Clear()
Finally
If res IsNot Nothing Then
res.Close()
End If
End Try
Return DirectCast(result.ToArray(GetType(Byte)), Byte())
End Function
Public static string Request(string url, string method, string data = null, string contentType = null, string certPath = null, string certPassword = null, CookieContainer cookies = null)
{
try
{
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(CheckValidationResult);
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = method;
if (!String.IsNullOrEmpty(contentType)) req.ContentType = contentType;
if (!string.IsNullOrEmpty(certPath))
{
X509Certificate2 cert = new X509Certificate2(certPath, certPassword ?? "", X509KeyStorageFlags.MachineKeySet);
req.ClientCertificates.Add(cert);
}
if (data != null && method == "POST")
{
byte[] btyData = System.Text.Encoding.UTF8.GetBytes(data);
req.ContentLength = btyData.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(btyData, 0, btyData.Length);
reqStream.Close();
}
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
{
return sr.ReadToEnd();
}
}
}
catch (WebException e)
{
}
}
Imports System.Collections.Generic
Imports System.Collections
Imports System.Web
Imports System.IO
Imports System.Security.Cryptography
Imports System.Xml
Imports System.Text.RegularExpressions
Imports System.Globalization
Imports System.IO.Compression
Imports System.Net
Imports System.Text
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Reflection
Imports System.Collections.Specialized
Imports System.Net.Security
Imports System.Security.Cryptography.X509Certificates
'
''' <summary>
''' HttpWeb请求管理。
''' </summary>
Public Class MyHttpWebRequest
'
''' <summary>
''' 保存网站Cookie。
''' </summary>
Private m_cookieheader As String
''' <summary>
''' 保存引用地址
''' </summary>
Private m_Referer As String = String.Empty
Private m_Status As HttpStatusCode = HttpStatusCode.OK
'
''' <summary>
''' 页面请求超时限制。
''' </summary>
Private TIMEOUT As Integer = 60000
''' <summary>
''' 设置引用URL
''' </summary>
''' <param name="url"></param>
Public Sub SetReferer(ByVal url As String)
m_Referer = url
End Sub
''' <summary>
''' 设置最长连接时间
''' </summary>
''' <param name="seconds">秒</param>
Public Sub SetTimeOut(ByVal seconds As Integer)
TIMEOUT = seconds * 1000
End Sub
''' <summary>
''' 设置引用URL
''' </summary>
''' <param name="url"></param>
Public ReadOnly Property GetStatusCode() As HttpStatusCode
Get
Return m_Status
End Get
End Property
Public Sub New()
'
' 构造函数逻辑
'
Me.m_cookieheader = ""
End Sub
'
''' <summary>
''' 断开,清除Cookie。
''' </summary>
Public Sub Disconnect()
Me.m_cookieheader = ""
End Sub
'
''' <summary>
''' 登录,记录会话。
''' </summary>
Public Function Login(ByVal url As [String], ByVal paramList As NameValueCollection, ByVal wideCharEncoding As System.Text.Encoding) As String
Return getPage(url, paramList, wideCharEncoding, "POST", True)
End Function
'
''' <summary>
''' Form提交方式获取响应数据。
''' </summary>
Public Function post(ByVal url As [String], ByVal paramList As NameValueCollection, ByVal wideCharEncoding As System.Text.Encoding) As String
Return getPage(url, paramList, wideCharEncoding, "POST", False)
End Function
'
''' <summary>
''' Get方式获取响应数据。
''' </summary>
Public Function getPage(ByVal url As [String]) As String
Return getPage(url, Nothing, Nothing, "GET", False)
End Function
'
''' <summary>
''' Get方式获取响应数据。
''' </summary>
Public Function getPageData(ByVal url As [String], ByVal doSetCookie As Boolean) As Byte()
Return getPageBytes(url, Nothing, Nothing, "GET", doSetCookie)
End Function
Private Function getPage(ByVal url As [String], ByVal paramList As NameValueCollection, ByVal wideCharEncoding As System.Text.Encoding, ByVal method As String, ByVal doSetCookie As Boolean) As String
Return System.Text.Encoding.UTF8.GetString(getPageBytes(url, paramList, wideCharEncoding, method, doSetCookie))
End Function
Private Shared Function CheckValidationResult(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal errors As SslPolicyErrors) As Boolean
Return True '总是接受
End Function
Private Function getPageBytes(ByVal url As [String], ByVal paramList As NameValueCollection, ByVal wideCharEncoding As System.Text.Encoding, ByVal method As String, ByVal resetCookie As Boolean) As Byte()
Dim res As HttpWebResponse = Nothing
Dim result As New System.Collections.ArrayList(5000)
Try
Dim req As HttpWebRequest = Nothing
'如果是发送HTTPS请求
If url.StartsWith("https", StringComparison.OrdinalIgnoreCase) Then
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CheckValidationResult)
ServicePointManager.SecurityProtocol = CType(&HC0 Or &H300 Or &HC00, SecurityProtocolType)
req = TryCast(WebRequest.Create(url), HttpWebRequest)
req.ProtocolVersion = HttpVersion.Version10
Else
req = TryCast(WebRequest.Create(url), HttpWebRequest)
End If
req.AllowAutoRedirect = False
req.Method = method
req.Timeout = TIMEOUT
'上行方式时,设置参数
If method.ToUpper() <> "GET" Then
Dim UrlEncoded As New StringBuilder()
Dim reserved As [Char]() = {"?"c, "="c, "&"c}
Dim SomeBytes As Byte() = Nothing
If paramList IsNot Nothing Then
Dim paramBuilder As New System.Text.StringBuilder()
Dim paramstr As [String] = Nothing
For li As Integer = 0 To paramList.Keys.Count - 1
If li > 0 Then
paramBuilder.Append("&")
End If
If paramList.Keys(li) <> "" Then
paramBuilder.Append(paramList.Keys(li))
paramBuilder.Append("=")
End If
paramBuilder.Append(paramList(paramList.Keys(li)))
Next
paramstr = paramBuilder.ToString()
SomeBytes = Encoding.UTF8.GetBytes(paramstr)
req.ContentLength = SomeBytes.Length
Dim newStream As Stream = req.GetRequestStream()
newStream.Write(SomeBytes, 0, SomeBytes.Length)
newStream.Close()
Else
req.ContentLength = 0
End If
End If
'请求响应
res = DirectCast(req.GetResponse(), HttpWebResponse)
m_Status = res.StatusCode
If resetCookie Then
Me.m_cookieheader = req.CookieContainer.GetCookieHeader(New Uri(url))
End If
Dim ReceiveStream As Stream = res.GetResponseStream()
Dim sr As System.IO.BinaryReader = Nothing
If res.ContentEncoding = "gzip" Then
Dim stream As New GZipStream(ReceiveStream, CompressionMode.Decompress)
sr = New BinaryReader(stream)
Else
sr = New BinaryReader(ReceiveStream)
End If
'读取数据
Dim read As Byte() = New Byte(255) {}
Dim count As Integer = sr.Read(read, 0, 256)
While count > 0
result.AddRange(GetSubBytes(read, 0, count))
count = sr.Read(read, 0, 256)
End While
Catch ex As Exception
Dim tmp As String = ex.Message
result.Clear()
Finally
If res IsNot Nothing Then
res.Close()
End If
End Try
Return DirectCast(result.ToArray(GetType(Byte)), Byte())
End Function
Private Function GetSubBytes(ByVal buffer As Byte(), ByVal index As Integer, ByVal count As Integer) As Byte()
If (count + index) > buffer.Length Then
count = buffer.Length - index
End If
Dim s As New System.IO.MemoryStream(buffer, index, count)
Return s.ToArray()
End Function
End Class
Private Shared Function Request(ByVal url As String, ByVal method As String, ByVal Optional data As String = Nothing, ByVal Optional contentType As String = Nothing, ByVal Optional certPath As String = Nothing, ByVal Optional certPassword As String = Nothing, ByVal Optional cookies As CookieContainer = Nothing) As String
Try
If url.StartsWith("https", StringComparison.OrdinalIgnoreCase) Then
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(CheckValidationResult)
End If
Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
req.Method = method
If Not String.IsNullOrEmpty(contentType) Then req.ContentType = contentType
If Not String.IsNullOrEmpty(certPath) Then
Dim cert As X509Certificate2 = New X509Certificate2(certPath, If(certPassword, ""), X509KeyStorageFlags.MachineKeySet)
req.ClientCertificates.Add(cert)
End If
If data IsNot Nothing AndAlso method = "POST" Then
Dim btyData As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
req.ContentLength = btyData.Length
Dim reqStream As Stream = req.GetRequestStream()
reqStream.Write(btyData, 0, btyData.Length)
reqStream.Close()
End If
Using res As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
Using sr As StreamReader = New StreamReader(res.GetResponseStream(), Encoding.UTF8)
Return sr.ReadToEnd()
End Using
End Using
Catch e As WebException
End Try
End Function
等级:
半年前写过一篇Http与Https的区别,在项目中用到的较少,最近在做一个文件上传与下载的项目,之前使用的是http协议传输,高手那么多,不免会有淘气的人搞点破坏,导致网站存在一些安全性问题,为了解决安全性问题,...
因为调用一个外部接口,会用到POST请求,而且还是Https的,但是由于之前学习的时候没有用到,所以研究了很久才弄懂了怎么去用JAVA实现Https发送post请求 使用的是HttpsURLConnection来操作的 代码如下 ...
标题POST方法 作用:新增资源 应用 。导包 import requests 。调用post方法 r=requests.post() 示例: 。r=requests.post(url,json,headers) #r为响应对象 参数: 1.url 新增接口url地址 2.Json 新增请求原文 3....
https发送post请求,并接收响应信息。
网上关于“java中发送HTTP/HTTPS的POST请求”的技术文章非常多,有的可用,有的不可用,很难分辨,而这些又在日常开发中经常用到。所以个人对以前使用的三类进行了总结(均参考了网络资料,亲测可用),希望以后自己...
一、http post 对于文件上传,客户端通常就是页面,在页面里实现上传文件不是什么难事,写个form,加上enctype="multipart/form-data",在写个接收的就可以了,没什么难的。如: <!DOCTYPEhtml> <html>...
curl 模拟 GET\POST 请求,以及 curl post 上传文件 一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行...
import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.security.KeyManagementException;...
PHP POST以及GET 请求HTTP接口1.POST2.GET...1.POST ** * POST请求https接口返回内容 * @param string $url [请求的URL地址] * @param string $post [请求的参数] * @return string */ public function post_c...
用于进行Https请求的HttpClient SSLClient.java import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl....
...你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。 你轻...
今天,一直使用的硬件设备以及与其他公司对接post方式的数据传输皆出现了问题,查看了代码发现...部分硬件不支持https,与其他公司那边的对接也是如此,如果强行更改,会出现接收不到post数据,也发送不了数据的情况...
本公司使用耶鲁大学的cas做单点登录服务器,在org.jasig.cas.client.authentication.AuthenticationFilter(过滤拦截请求,进行身份验证)中在181行this.authenticationRedirectStrategy.redirect(request, response,...
HTTPS和HTTP的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以...
后台的接口都是post请求的 现在就是我用http的post请求后会跳转https的get请求 然后请求我的接口 请问如何才能将http的post请求转换为https请求也是post不是get请求 ``` @Bean public ...
springboot项目 绑定了https协议 但是http的post请求后自动转换成https请求get请求 请问大佬如和将https的get请求转换为post请求 ``` @Bean public EmbeddedServletContainerFactory servletContainer()...
踩过无数坑之后,成功的方案,主要在设置Content-type application/x-www-form-urlencoded这里,之前没设置,一直数据不通过,不过好了现在OK了 URL reqURL = new URL(url); //创建URL对象 ...
//post请求返回为空 } } ``` 我发的:...
背景 由于公司的项目需要部署到tomcat 中,且...证书配置好后,能够访问,由于需要将以http访问的请求重定向到https,所以我又在tomcat 中的web.xml中配置了如下信息: <login-config> <!-...
python—urllib,urllib2,ssh,get请求,post请求1、代理抓包分析 在登录界面,并刷新首页获取相应的参数 2、在登录界面输入账户与密码进行登录 3、python脚本的源码root@kali:~/python/dinpay# cat ...
原文链接:http://www.easycharts.club:8443/article/10 点击之后你绝不会后悔
# -*- coding: utf-8 -*- import requests class HttpsClient: def __init__(self): pass @staticmethod def get(_url, _json): _resp = requests.get(_url, _json)...
2019独角兽企业重金招聘Python工程师标准>>> ...
正文:然而,在.NET FrameWork 4.0的环境下,居然找不到。。。System.Net.SecurityProtocolType 这个枚举,没有这个值。。。所以,在POST提交的时候,是会出现问题,有的网站就不会有这个问题,因为他们是1.0的。 ...
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; ...import java.net.MalformedURLException;...
package main import ( "crypto/tls" "fmt" "io" "io/ioutil" "net/http" ) func main(){ GetData() PostMethod() } //这是get请求 func GetData(){ tr := &...
var request = require('request'); request.post( { url:'https://XXXXXXXXXXXXXXXXXXXXXXXXXX', form:{ rawtx:rawtx }, encoding:'utf8' },function(e...
/** * 发起https请求并获取结果 * * @param requestUrl ... * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return JSONObject(通过JSONObject.get(key)的方式获取jso...

一、只针对http 的post请求 package test; import java.io.InputStreamReader; import java.net.URI; import net.sf.json.JSONObject; import org.apache.http.Header; import org.apache.http.HttpEnti