用XMLHTTP通过代理服务器从服务提取数据的一些问题

xml|服务器|数据|问题

用XMLHTTP通过代理服务器从服务提取数据,比如说从WEBSERVICE、ASP、ASPX提取数据,我在用的时候曾经出现过一些不明问题,往往通不过代理认证。经过多次摸索,终于弄明白其中的原因,现分拿出来分享。

在VB中调用方法是这样的:

    Dim objHTTP As New XMLHTTP
          
    objHTTP.open "post", http://192.168.1.2/web.asmx, False
    objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    objHTTP.send (strRequest) '如果上面是“GET”方式发送的,这句是没有用的,所以得用“POST”方式
   
    returnStr = objHTTP.responseText '以文本的方式返回数据
   

以前看到说是要用proxycfg.exe这个winhttp配置命令来进行配置,实际上这是不正确的,其实是没有必要的,设不设是一回事,至少在XP系统中是这样的,只要在IE浏器中设置了正确的代理服务器地址就OK。

而代理服务的用户名的密码曾经看到过是这样发送的:

 objHTTP.open "post", http://192.168.1.2/web.asmx, False,username,password

实际上这是错误的,这个用户名和密码不是发往代理服务器认证,而是发往需要认证用户的IIS服务器的。代理服务器的用户名的密码是不需要设置的,它会像IE通过代理访问一样,在需要的时候会弹出用户名和密码的输入框。但我在测试中发现,不同的代理服务器会有所不同,一旦在代理服务器上将认证密码改动,调试的时候基本上不会调用成功,因为些时程序发往代理服务器的密码还是原来的,的情况下会有弹出框要求重新输入密码,如在用CCPROXY代理服务器的时候,但大多数好像不行。我曾这个地方折腾了好久,一直认为是自己的程序写得不对,后来发现只要把VB关掉重新打开,就会有输入框了。原来原因是这样的,一个程序在调用的时候,会记往原来的用户名和密码,如果在中途代理服务器改变了密码或用户名,一般情况下程序不会感知,但有些代理服务器可以告知程序重新输入,但我测试的大多数不行。这时只要重启程序就OK。

在.NET中情况差不多,我只用过通过WEB引用调用WEBSERVICE,如果有代理服务器,一定要在IE中设置正确,而且一定要先上一下网,把代理服务器的用户和密码输入正确后,在.NET中才能调用成功,因为这.NET中的用户名和密码是IE保持同步的,没用自动调出输入框来输入,如果不正确就出错误,所以调用的时候一定要用try语句。

 

时间: 2024-10-17 01:51:40

用XMLHTTP通过代理服务器从服务提取数据的一些问题的相关文章

push消息,使用第三方提取数据,怎么获取用户设备状态

问题描述 push消息,使用第三方提取数据,怎么获取用户设备状态 push消息,使用第三方提取数据,怎么获取用户设备状态是联网还是杀掉了app进程 解决方案 这种的只能去找第三方了,不然还能怎么办 解决方案二: 看第三方服务的API文档

以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格

excel|数据|数据库 最近因为需要学习了一下使用C#操作Excel表格,现在把我使用C#如何定制表格的过程提供给需要的兄弟:/*从数据库提取数据*/string strconn="packet size=4096;user id=sa;data source=localhost;persist security info=True;initial catalog=Database;password=sa"; SqlConnection sqlconn=new SqlConnecti

使用DataStage Java Integration Stage和Java Pack从Excel源文件中提取数据

简介 IBM InfoSphere Information 服务器由一套可帮助企业从遍布多个数据源系统的信息中获取 业务价值的数据集成产品组成.它有助于以某种具有成本效益的方式从多个异构数据源中分析.清理和集成信 息.有了 IBM InfoSphere Information Server,企业能够以较低的成本和风险提高其运营效率. IBM Information Server DataStage 是一个 ETL 产品,可帮助组织提取.转换和加载来自异构数据源的数据. DataStage 可使用

txt文件-vb.net 从txt中提取数据,显示在数据中

问题描述 vb.net 从txt中提取数据,显示在数据中 10C txt文件:界面上数据库表格:还望大家多帮忙,用oleDB.access. 解决方案 传一个你的txt文件到网盘(百度.163都可以),我帮你写 解决方案二: Imports System.IOPublic Class Form1 Private Sub Button1_Click(sender As Object e As EventArgs) Handles Button1.Click Dim ofd As New OpenF

java-当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?

问题描述 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 怎么才能解决问题,跟jdbc driver Manager的设置有关系吗? 解决方案 数据库字符集 与 页面编码 都使得 是 uft-8?得统一 解决方案二: 建议编码格式采用UTF-8的格式 解决方案三: 在使用数据的每一个节点上,其编码方式必须要一致否则就会出现乱码.特别是使用MySQL时,客户端,连接器.数据库

java-Java Socket 读取TCP服务端数据包不完整

问题描述 Java Socket 读取TCP服务端数据包不完整 Java Socket 读取TCP服务端数据包不完整:除了利用数据包大小循环读取输入流的得到完整的数据外,还有其他什么方法? 数据包在网络传输的过程中,数据传递到客户端基本处于"无序"态.除了开辟一块内存按数据包的顺序存放外,还有其他更好的方案么? 解决方案 TCP 因为是长连接的,肯定是有序的.数据接收不完整,这种现象在通讯中很常见的,是必须代码处理. 解决方案二: TCP是有序的吧?UDP才是无序的. 解决方案三: T

labview 数据库-从labview数据库表中提取数据

问题描述 从labview数据库表中提取数据 请问在labview中用数据库工具包,怎么从数据库表中提取一行的数据(非一列),用 执行语句 的vi,怎么获取到这行数据 解决方案 ultrachart的使用(一):从数据库中提取数据 解决方案二: http://zhidao.baidu.com/link?url=I6QemQpvC_C1sHAid9RjZXv3Z-VF62IeHIaY1kJEpMCmcalBNVfw1_Hv5fFnmKrvKyphR4rOihW1oqw1fXXUzVZrBsrp2k

快速从表格中提取数据中的Office宏

方法一:利用快捷键逐个提取 这个实例的效果是:点选要提取数据的单元格后,只要按一下Ctrl+d键,数据就自动拷贝到你指定的位置,并且可以连续操作,后拷贝的数据会自动顺延到指定位置的下一单元格中. Step1 启动http://www.aliyun.com/zixun/aggregation/16544.html">Excel新建一个文件,保存为DataCenter.xls.点击"工具→宏→录制新宏"菜单命令,设置宏名为CopyRange,快捷键设为Ctrl+d(注意:不

etw-netsh trace 生成的etl文件提取数据包自制成pcap文件

问题描述 netsh trace 生成的etl文件提取数据包自制成pcap文件 有人做过这方面的工作吗?就目前用tdh库可以提取十六进制的数据包,转成pcap文件我还有很多的错误-如果想要对应进程名称和数据包-进程名怎么从etl离线文件获取? 解决方案 如果你已经获取十六进制或者二进制数据,那么请看: http://ask.csdn.net/questions/199693 解决方案二: https://technet.microsoft.com/zh-cn/magazine/ff625276.