标签: http-proxy

如何使用Charles代理更改请求http方法?

我正在使用Charles Proxy进行http调试.

为了将http方法GET切换到POST,我尝试使用"工具>重写"菜单.但我在Rewrite菜单上找不到任何方法.

如何使用Charles Proxy切换http方法(GET到POST)?

http http-proxy charles-proxy

6
推荐指数
1
解决办法
6237
查看次数

Apple推送代理和stream_context

我必须向iOS设备发送推送通知.我的连接必须通过代理启用.我尝试了一切但没有成功.我有一个错误110连接超时.如果我只是尝试连接Apple推送地址,它正在使用cURL.我不知道问题出在哪里.代理配置?PHP stream_context错误的实现?

这是我的代码:

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'certificate.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', 'my_passphrase');
stream_context_set_option($ctx, 'ssl', 'verify_peer', false);
stream_context_set_option($ctx, 'http', 'proxy', 'tcp://my-proxy.net:8080');
stream_context_set_option($ctx, 'http', 'request_fulluri', true);

$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
var_dump($fp);
var_dump($err);
var_dump($errstr);
exit;
Run Code Online (Sandbox Code Playgroud)

你有好主意吗 ?

编辑:

它可以直接链接到Squid吗?我刚刚发现代理正在运行Squid.我也尝试使用fopen()函数而不是stream_socket_client()它似乎不允许ssl协议.

这是我的var_dump输出:bool(false)int(110)string(20)"连接超时"

我也有这个警告:警告:stream_socket_client():无法连接到第22行/share/www/website/test.php中的ssl://gateway.sandbox.push.apple.com:2195(连接超时)

php http-proxy apple-push-notifications

6
推荐指数
1
解决办法
3487
查看次数

从nginx到squid的反向代理

类似,我试图在 nginx 后面托管一个鱿鱼代理:

example.com - 主要站点

relay.example.com - 鱿鱼服务器。

到目前为止,当我尝试使用 squid 代理时,它会抱怨访问非法页面,例如,如果我尝试访问http://www.google.com,我会收到一个 Invalid URL 错误,指出该 URL /http://www.google.com(注意前面的 /)。任何人都可以建议为什么会发生这种情况,或者修复 nginx 或者可能在鱿鱼配置中?

upstream @squid {
    server localhost:3128;
}

server {
    listen 80;
    server_name relay.example.com;

    location / {
        proxy_pass http://@squid/$scheme://$host$uri;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Request-URI $request_uri;

        proxy_redirect off;
    }
}
Run Code Online (Sandbox Code Playgroud)

https://imgur.com/qtgrZI9

鱿鱼的日志给出:

1423083723.857      0 127.0.0.1 NONE/400 3530 GET /http://www.google.com/ - HIER_NONE/- text/html
Run Code Online (Sandbox Code Playgroud)

和 nginx 用于相同的请求:

12.34.56.78 - - [04/Feb/2015:16:02:03 …
Run Code Online (Sandbox Code Playgroud)

proxy reverse-proxy nginx squid http-proxy

6
推荐指数
1
解决办法
1万
查看次数

如何使用mitmproxy捕获HTTP请求/响应头?

我已经能够从智能手机捕获HTTP(s)流量,并使用命令使用mitmdump存储此流量

mitmdump -w outfile
Run Code Online (Sandbox Code Playgroud)

这似乎也HTTP body随之抛弃headers.我有兴趣只捕获标题,最好是单个csv行(或json字符串).我怎样才能做到这一点?

http-proxy http-headers mitmproxy

6
推荐指数
2
解决办法
7754
查看次数

yum 安装失败,HTTP 403 试图访问 repomd.xml

我正在尝试在旧的 Fedora 20 虚拟机上安装一个软件包。

yum install<the_package_name>导致失败并出现HTTP 403错误:

http://download.fedoraproject.org/<...(truncated)...>/repomd.xml:
[Errno 14] HTTP Error 403 - Forbidden
Run Code Online (Sandbox Code Playgroud)

我的网络浏览器在http://download.fedoraproject.org/pub/fedora/linux/updates/20那里什么也看不到,所以我意识到 FC20 不再受支持 (EOL) 并且它的存储库 URL 已更改。因此,我将 baseurl 修复为/etc/yum.repos.d/fedora.repo如下所示:

baseurl=http://archives.fedoraproject.org/<...(truncated)...>
Run Code Online (Sandbox Code Playgroud)

我确定 URL 现在是正确的,因为我可以repomd.xml使用curl或下载wget,并在我的网络浏览器中访问它...

yum install <the_package_name>继续失败并出现HTTP 403错误!它无法通过repomd.xml正确的 URL访问:

http://archives.fedoraproject.org/<...(truncated)...>/repomd.xml:
[Errno 14] HTTP Error 403 - Forbidden
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题并在这个旧的 Fedora (FC 20) 上安装软件包吗?


注 1:我在代理后面工作(不是我的选择)。

注意 2:将我的 Fedora 20 升级到 Fedora 21 或 22 也不是一个选项。

proxy http fedora yum http-proxy

6
推荐指数
2
解决办法
3万
查看次数

tinyproxy无法转发Connect方法

我正在尝试为所有类型的帧(HTTP,HTTPS)设置透明代理,我正在使用tinyproxy这样做.我已经设置了我的路由器,将所有传入和传出帧重定向(使用NAT)到tinyproxy(正在侦听端口8888).

我尝试访问HTTPS网站(https://www.google.com/),但收到SSL连接错误.浏览tinyproxy日志,我看到以下内容:

CONNECT   Mar 24 23:34:27 [22533]: Connect (file descriptor 11): 128.112.94.38 [128.112.94.38]
CONNECT   Mar 24 23:34:27 [22533]: Request (file descriptor 11): 
WARNING   Mar 24 23:34:27 [22533]: Could not retrieve all the headers from the client
INFO      Mar 24 23:34:27 [22533]: Read request entity of 103 bytes
Run Code Online (Sandbox Code Playgroud)

tinyproxy文档说,只要我在tinyproxy.conf文件中设置以下行,Connect帧的转发应该透明地工作:

# ConnectPort: This is a list of ports allowed by tinyproxy when the
# CONNECT method is used.  To disable the CONNECT method altogether, set
# the value …
Run Code Online (Sandbox Code Playgroud)

https proxy http http-proxy transparentproxy

6
推荐指数
1
解决办法
4022
查看次数

Alamofire ServerTrustPolicy证书固定不阻止Charles Proxy Swift 3

我的搜索范围很广,无法找到我的问题的答案.为了使我们的应用程序更安全,我们被告知使用"证书固定".我们已经将Alamofire库用于所有API调用,因此使用ServerTrustPolicyManager包含作为实现证书固定的方法似乎很自然.我在我的应用程序包中包含了适当的证书,这是我用来配置SessionManagerAlamofire 的代码:

let url = "https://www.mycompany.com"

var manager: SessionManager? {

    let serverTrustPolicy = ServerTrustPolicy.pinCertificates(
        certificates: ServerTrustPolicy.certificates(),
        validateCertificateChain: true,
        validateHost: true
    )

    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        url: serverTrustPolicy
    ]
    let config = URLSessionConfiguration.default

    return SessionManager(configuration: config, serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies))

}
Run Code Online (Sandbox Code Playgroud)

现在,当我想要发出API请求时,我有这个方法:

func request(routerRequest request: URLRequestConvertible) -> DataRequest {
    assert(url != "", "A base URL string must be set in order to make request")
    print("URL: \(url) : \(request)")
    return (manager ?? SessionManager.default).request(request)
}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是,当我使用类似查尔斯代理的东西时,这仍然有用......所有请求仍在进行中.证书钉扎不应该阻止像Charles Proxy这样的东西能够工作,因为证书不匹配吗?

我已经测试了其他正确使用证书固定的应用程序,它们会阻止任何类型的代理(Charles或其他)建立连接.如果我在启用Charles时尝试运行像Uber或我的Wells …

http-proxy ios swift alamofire certificate-pinning

6
推荐指数
1
解决办法
2248
查看次数

什么是HTTPS代理

我知道如果HTTP服务器支持CONNECT方法,那么它可以创建一个TCP隧道,那么我们可以使用所有基于TCP的协议。

这是我的困惑,HTTPS代理是指HTTP代理支持CONNECT方法还是基于SSL的HTTP代理?

http-proxy

6
推荐指数
1
解决办法
2146
查看次数

设置Electron App的代理

我正在使用某些npm模块,这些模块在后台发出获取请求以从网站中提取一些数据。但是没有选项或设置来为这些请求设置代理,所以我想知道如何为整个电子应用设置代理,以便所有请求都通过该代理?

proxy http-proxy electron

6
推荐指数
1
解决办法
744
查看次数

如何在 Python 请求上轮换代理

我正在尝试进行一些抓取,但每 4 个请求就会被阻止。我试图更改代理,但错误是一样的。我应该怎么做才能正确更改它?

这是我尝试的一些代码。首先,我从一个免费的网络获取代理。然后我使用新代理执行请求,但它不起作用,因为我被阻止了。

from fake_useragent import UserAgent
import requests

def get_player(id,proxy):
    ua=UserAgent()
    headers = {'User-Agent':ua.random}

    url='https://www.transfermarkt.es/jadon-sancho/profil/spieler/'+str(id)

    try:
        print(proxy)
        r=requests.get(u,headers=headers,proxies=proxy)
    execpt:

....
code to manage the data
....
Run Code Online (Sandbox Code Playgroud)

获取代理

def get_proxies():
    ua=UserAgent()
    headers = {'User-Agent':ua.random}
    url='https://free-proxy-list.net/'

    r=requests.get(url,headers=headers)
    page = BeautifulSoup(r.text, 'html.parser')

    proxies=[]

    for proxy in page.find_all('tr'):
        i=ip=port=0

    for data in proxy.find_all('td'):
        if i==0:
            ip=data.get_text()
        if i==1:
            port=data.get_text()
        i+=1

    if ip!=0 and port!=0:
        proxies+=[{'http':'http://'+ip+':'+port}]

return proxies
Run Code Online (Sandbox Code Playgroud)

调用函数

proxies=get_proxies()
for i in range(1,100):
    player=get_player(i,proxies[i//4])

....
code to manage the data  
....
Run Code Online (Sandbox Code Playgroud)

我知道代理抓取很好,因为当我打印时,我会看到类似的内容: …

python proxy http-proxy web-scraping python-requests

6
推荐指数
3
解决办法
1万
查看次数