C++ &引用;403禁止;对于TIdTCPClient::Connect()+;TidConnectThroughTTPProxy

C++ &引用;403禁止;对于TIdTCPClient::Connect()+;TidConnectThroughTTPProxy,c++,proxy,indy,c++builder-xe2,C++,Proxy,Indy,C++builder Xe2,С++,Embarcadero RAD Studio XE2 我需要通过http代理连接到带有TIdTCPClient的::6100。所以我写了这段代码: m_pClient = new TIdTCPClient( NULL ); m_pClient->Host = m_sServerAddress.c_str(); m_pClient->Port = StrToInt( m_sServerPort.c_str() ); m_pClient->

С++,Embarcadero RAD Studio XE2

我需要通过http代理连接到带有TIdTCPClient的::6100。所以我写了这段代码:

    m_pClient = new TIdTCPClient( NULL );

    m_pClient->Host = m_sServerAddress.c_str();
    m_pClient->Port = StrToInt( m_sServerPort.c_str() );
    m_pClient->ConnectTimeout = 5000;
    m_pClient->ReadTimeout = 5000;

    if ( m_bUseProxy == true )
    {
        m_pIdIOHandlerStack = new TIdIOHandlerStack( NULL );

        m_pIdIOHandlerStack->TransparentProxy = new TIdConnectThroughHttpProxy( m_pIdIOHandlerStack );
        m_pIdIOHandlerStack->TransparentProxy->Host = m_sProxyHost;
        m_pIdIOHandlerStack->TransparentProxy->Port = m_iProxyPort;
        m_pIdIOHandlerStack->TransparentProxy->Enabled = True;

        m_pClient->IOHandler = m_pIdIOHandlerStack;
    }
    else
    {
        m_pClient->IOHandler = NULL;
    }

    <other code>

    m_pClient->Connect();
m_pClient=new-tidtcplient(NULL);
m_pClient->Host=m_sServerAddress.c_str();
m_pClient->Port=stroint(m_sServerPort.c_str());
m_pClient->ConnectTimeout=5000;
m_pClient->ReadTimeout=5000;
if(m_bUseProxy==true)
{
m_pIdIOHandlerStack=新的TIdIOHandlerStack(NULL);
m_-pIdIOHandlerStack->TransparentProxy=通过HttpProxy(m_-pIdIOHandlerStack)新建TIDConnectThrough;
m_pIdIOHandlerStack->TransparentProxy->Host=m_sProxyHost;
m_pIdIOHandlerStack->TransparentProxy->Port=m_iProxyPort;
m_pIdIOHandlerStack->TransparentProxy->Enabled=True;
m_pClient->IOHandler=m_pIdIOHandlerStack;
}
其他的
{
m_pClient->IOHandler=NULL;
}
m_pClient->Connect();
我在“连接”上得到了一个“403禁止”的解释 代理:5.196.0.118::3128
我可以不使用代理或ping连接到此服务器。 我在浏览器中成功地使用了此代理服务器,但我无法将其用于我的代码。
如何解决此问题?

您可能需要为
tidconnectthroughhttproxy
分配代理用户名/密码。如果这仍然不起作用,那么使用数据包嗅探器(如Wireshark)将浏览器的代理请求与
TIDConnectThroughThathPProxy
)的请求进行比较,找出它们之间的区别。看起来匿名代理也需要用户名和密码。现在可以了,谢谢!我不相信这会有帮助