前言
我们内部测试的http服务器很多时候证书都是没有经过第三方认证的,我们发送http请求基本上都是忽略证书认证。
我总结了一下常用编程语言使用http请求时忽略证书认证的代码片段,记录一下下。
代码
go语言
func httpPost(url, body string) ([]byte, error) { req, err := http.NewRequest(http.MethodPost, urlPre+url, strings.NewReader(body)) if err != nil { return nil, err } req.Header.Add("Content-Type", "application/x-www-form-urlencoded") client := &http.Client{ // 忽略证书验证 Transport: &http.Transport{ TLSClientConfig: &tls.Config{ InsecureSkipVerify: true, }, }, } resp, err := client.Do(req) if resp != nil { defer resp.Body.Close() } if err != nil { return nil, err } data, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } return data, nil}
Python语言
import jsonimport requests try: # verify = False 表示忽略证书 response = requests.post("http://www.baidu.com/",verify = False, headers = header, data = "") data = json.loads(response.text) print(data)except Exception as e: print('error:', e)
Ruby语言
require 'rest-client'require 'json' begin # :verify_ssl => OpenSSL::SSL::VERIFY_NONE 表示忽略证书 resp = RestClient::Request.execute(method: :post, url: "http://www.baidu.com/", payload: "", headers: headers, :verify_ssl => OpenSSL::SSL::VERIFY_NONE) data = JSON.parse(resp.body) puts(data)rescue => e puts("#{e.class}, #{e.message}")end
Java语言
package iotp; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.MalformedURLE