美文网首页
网络代理对请求的影响

网络代理对请求的影响

作者: 知成 | 来源:发表于2024-03-18 20:46 被阅读0次

下面仅以 clashX 举例

背景

在开启 clashX 时,通过 chrom 访问 https 是可以正常访问且能获取到数据。但是如果直接在终端使用 curl 或通过 go 语言写的 https 的请求都无法正常的进行访问请求。

产生问题的原因

经过测试发现 go 的请求代码以及 curl 直接在国外的服务器运行是可以做正常的访问请求的。说明本身发起请求的代码是没有问题的。那就只有一种情况,通过 curl 或 go 的代码请求流量没有走 clashX 代理。

curl 的请求添加代理

curl --proxy "http://user:pwd@127.0.0.1:1234" "http://httpbin.org/ip"

通过"--proxy"进行代理的配置

经过测试是可以进行数据访问的。

# 有用户名密码时
export http_proxy="http://user:pwd@127.0.0.1:1234"
export https_proxy="http://user:pwd@127.0.0.1:1234"
# 没有用户名密码
export http_proxy="http://127.0.0.1:1234"
export http_proxy="http://127.0.0.1:1234"

# 上面的设置用于全局代理,如果不需要刻意使用 unset 删除
unset http_proxy
unset https_proxy

go 发送请求走代理

go 的请求需要走代理的时候,需要配置 client 的 Transport
一下是实际代码示例:

package main  
  
import (  
    "fmt"  
    "io"    
    "net/http"    
    "net/url"
)

func main(){
    proxyUrl, err := url.Parse("http://127.0.0.1:7890")  
    if err != nil {  
        fmt.Println(err)  
        return  
    }  
    transport := &http.Transport{  
        Proxy: http.ProxyURL(proxyUrl),  
    }  
    client := &http.Client{  
        Transport: transport,  
    }  
    url1 := "https://api.themoviedb.org/3/movie/changes?page=1"  
    req, _ := http.NewRequest("GET", url1, nil)  
  
    req.Header.Add("accept", "application/json")   
  
    res, err := client.Do(req) //  
    if err != nil {  
        fmt.Println(err)  
        return  
    }  
    defer res.Body.Close()
    body, err := io.ReadAll(res.Body)  
    if err != nil {  
        fmt.Println(err)  
        return  
    }  
    fmt.Println(string(body))
}

以上代码中通过向,client 添加 Transport 字段来进行代理的配置;

相关文章

  • retrofit 由浅入深(三)源码解析

    源码理解主要从这几个方面 解析网络请求接口的注解配置网络请求参数 动态代理 生成 网络请求对象 网络请求适配器 将...

  • nginx反向代理

    什么是反向代理? 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定 代理服务器,并...

  • Nginx 反向代理

    什么是反向代理 通常的代理服务器,只用于代理内部网络对 Internet 的连接请求,客户机必须指定代理服务器,并...

  • iOS开发拾记 -- 字典的遍历 & 简单的网络请求 &

    NSDictionary的遍历 简单的网络请求 别忘了实现网络请求代理方法: 如何在用户滚动UITableView...

  • __block妙用

    示例:代理型网络请求转block表示头一回在项目里遇上代理型网络请求,这肯定是非常令人头疼的,场景如下:这是网络请...

  • 网络请求代理 HttpProcessor

    来自动脑学院-框架搭建重构用于管理网络请求,方便替换网络请求框架

  • 14.新建ViewModel

    1.新建ViewModel 在ViewModel中编写请求和解析网络数据 网络请求的代理放到ViewModel 2...

  • iOS发送网络请求时设置HTTP代理

    需求:iOS发送网络请求时设置HTTP代理 解决方法:利用NSURLSession发送网络请求,并进行相应的设置。...

  • 代理模式-ProxyPattern

    前言: 代理模式 代理模式的组成部分 代理接口:代理类和委托类实现的接口 代理类:负责对请求的预处理、过滤,将请求...

  • 代理ip对网络安全的影响

    网络工作以及网络生活都是经过很多部分共同组成的,要更加安全地适应网络,更换ip地址这个操作不能够不懂。 代理IP就...

网友评论

      本文标题:网络代理对请求的影响

      本文链接:https://www.haomeiwen.com/subject/lsszzdtx.html