设置http代理服务器使用xmlrpc进行远程连接
2007-04-15 14:23
399 查看
这两天都在研究如何转移blog的程序,现在终于有了关键性的突破。
因为blogconverter已经实现对msn spaces文章的获取,就想研究他好了,反正是开源的。于是下载eclipse,jdk,gwt,TortoiseSVN,tomact....进行java程序开发,工具就要下载一箩筐东西哎。
由于公司都是使用http代理服务器,只开了80端口,这个造成了非常大的问题。首先eclipse的svn插件不能正常地从资源库取出程序,只有装TortoiseSVN,为其设置代理服务器,然后就顺利从http://www.coollittlethings.com/svn/blogconverter签 出了blogconverter的源程序,然后使用eclipse导入进来。这个项目用到了google web tools进行ajax开发。找了半天也搞不懂怎么在tomcat里执行程序。于是只有把他当作application执行。com.w18.mblog 里面有个converter.java具有main函数,好像是gwt的程序入口点。运行程序后和http://www.coollittlethings.com/blogconverter/的效果差不多,要输入msn的帐号和机密字。本来以为这样就可以读出我blog上的内容,但没那么简单,前面说过公司里全部使用http代理上网,所以程序根本不能访问网络。
然后我就开始了漫长的寻找,这个程序使用msn提供的MetaWeblogApi接口进行文章的获取。MetaWeblogApi使用xmlrpc实现远程调用,以xml格式传输数据,他是非常轻量级的。http://www.xmlrpc.com/这个是官方网站,现在要解决的是在java的网络连接中设置代理服务器。可是网上关于如何实现的文章少的可怜,大概都是如下实现:
String proxyHost = "http://test.com"; //设置代理服务器名称
String proxyPort = "80" //代理服务器端口
System.setProperty("proxySet", "true");
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", proxyPort);
Authenticator proxyAuthenticator = new HttpAuthenticateProxy();
Authenticator.setDefault(proxyAuthenticator);
HttpAuthenticateProxy 类
package com.w18.mblog.poster;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class HttpAuthenticateProxy extends Authenticator
{
private static final String PROXY_USERNAME = "jecray"//代理用户名
private static final String PROXY_PASSWORD = "ycYC12!@" //代理密码
private String proxyUsername = PROXY_USERNAME;
private String proxyPassword = PROXY_PASSWORD;
public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}
public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(proxyUsername,
proxyPassword.toCharArray());
}
}
但是这样程序依然不能执行,不知道在java中如何设置全局的网络代理。这样用java实现变得不可能了。突然我想难道非要用java实现?如果用.net能实现的话何乐而不为呢。
接下来就思考着在.net上实现了。经过一次一次的google,找到了相关的信息。XML-RPC.NET是.net环境下的一个类库,他实现了XML-RPC服务器端和客户端.支持.net framework 1.1和2.0 而且是开源的.于是下载了该组件,从http://www.xml-rpc.net/可以得到他.解压缩后可以找到CookComputing.XmlRpc.dll,是for .net1.1的. 下面开始解决代理服务器的难题了,还好网上关于在.net中网络连接设置代理服务器的文章比较多.于是顺利解决了这个难题.就几行代码就搞定了
using System.Net;
Uri proxyURI = new Uri("http://jecjec.com:80");//代理服务器地址
System.Net.WebProxy proxyObject = new System.Net.WebProxy(proxyURI,false);
proxyObject.Credentials = new System.Net.NetworkCredential("jecray","pwd","domain"); //分别设置用户名,密码,域
GlobalProxySelection.Select = proxyObject;//设置程序访问网络时使用该代理
如果设置的话,会报以下错误:远程服务器返回错误: (407) 需要代理身份验证
在java中那么不容易完成的任务在.net中轻而易举啊.....
现在要实现通过msn spaces提供的MetaWeblogApi对spces进行读取了.所幸微软提供了很多帮助,msdn上很多篇介绍Windows Live Spaces MetaWeblog API 的文章.还有一个代码的示例 http://msdn2.microsoft.com/en-us/library/aa905664.aspx ,只要在项目中引用了CookComputing.XmlRpc.dll就可以直接编译,非常的方便.但由于我的特殊情况,需要加入设置代理服务器的那几行代码.
要 是程序正确执行还要注意 必须把你的blog设置Email发布功能,要设置一个机密字,程序中输入的用户名和密码不是你msn spaces的用户名密码,而是spaces的子域名和机密字. 这样程序就可以对blog的文章进行抓取.通过MetaWeblogApi还可以进行更多的操作,如发布文章,删除文章等等.
最后的任务就是把抓下来的文章生成xml.
条条道路通罗马 虽然不指望所有路都可以通,但总有路能通的.Created by jecray
因为blogconverter已经实现对msn spaces文章的获取,就想研究他好了,反正是开源的。于是下载eclipse,jdk,gwt,TortoiseSVN,tomact....进行java程序开发,工具就要下载一箩筐东西哎。
由于公司都是使用http代理服务器,只开了80端口,这个造成了非常大的问题。首先eclipse的svn插件不能正常地从资源库取出程序,只有装TortoiseSVN,为其设置代理服务器,然后就顺利从http://www.coollittlethings.com/svn/blogconverter签 出了blogconverter的源程序,然后使用eclipse导入进来。这个项目用到了google web tools进行ajax开发。找了半天也搞不懂怎么在tomcat里执行程序。于是只有把他当作application执行。com.w18.mblog 里面有个converter.java具有main函数,好像是gwt的程序入口点。运行程序后和http://www.coollittlethings.com/blogconverter/的效果差不多,要输入msn的帐号和机密字。本来以为这样就可以读出我blog上的内容,但没那么简单,前面说过公司里全部使用http代理上网,所以程序根本不能访问网络。
然后我就开始了漫长的寻找,这个程序使用msn提供的MetaWeblogApi接口进行文章的获取。MetaWeblogApi使用xmlrpc实现远程调用,以xml格式传输数据,他是非常轻量级的。http://www.xmlrpc.com/这个是官方网站,现在要解决的是在java的网络连接中设置代理服务器。可是网上关于如何实现的文章少的可怜,大概都是如下实现:
String proxyHost = "http://test.com"; //设置代理服务器名称
String proxyPort = "80" //代理服务器端口
System.setProperty("proxySet", "true");
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", proxyPort);
Authenticator proxyAuthenticator = new HttpAuthenticateProxy();
Authenticator.setDefault(proxyAuthenticator);
HttpAuthenticateProxy 类
package com.w18.mblog.poster;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class HttpAuthenticateProxy extends Authenticator
{
private static final String PROXY_USERNAME = "jecray"//代理用户名
private static final String PROXY_PASSWORD = "ycYC12!@" //代理密码
private String proxyUsername = PROXY_USERNAME;
private String proxyPassword = PROXY_PASSWORD;
public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}
public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(proxyUsername,
proxyPassword.toCharArray());
}
}
但是这样程序依然不能执行,不知道在java中如何设置全局的网络代理。这样用java实现变得不可能了。突然我想难道非要用java实现?如果用.net能实现的话何乐而不为呢。
接下来就思考着在.net上实现了。经过一次一次的google,找到了相关的信息。XML-RPC.NET是.net环境下的一个类库,他实现了XML-RPC服务器端和客户端.支持.net framework 1.1和2.0 而且是开源的.于是下载了该组件,从http://www.xml-rpc.net/可以得到他.解压缩后可以找到CookComputing.XmlRpc.dll,是for .net1.1的. 下面开始解决代理服务器的难题了,还好网上关于在.net中网络连接设置代理服务器的文章比较多.于是顺利解决了这个难题.就几行代码就搞定了
using System.Net;
Uri proxyURI = new Uri("http://jecjec.com:80");//代理服务器地址
System.Net.WebProxy proxyObject = new System.Net.WebProxy(proxyURI,false);
proxyObject.Credentials = new System.Net.NetworkCredential("jecray","pwd","domain"); //分别设置用户名,密码,域
GlobalProxySelection.Select = proxyObject;//设置程序访问网络时使用该代理
如果设置的话,会报以下错误:远程服务器返回错误: (407) 需要代理身份验证
在java中那么不容易完成的任务在.net中轻而易举啊.....
现在要实现通过msn spaces提供的MetaWeblogApi对spces进行读取了.所幸微软提供了很多帮助,msdn上很多篇介绍Windows Live Spaces MetaWeblog API 的文章.还有一个代码的示例 http://msdn2.microsoft.com/en-us/library/aa905664.aspx ,只要在项目中引用了CookComputing.XmlRpc.dll就可以直接编译,非常的方便.但由于我的特殊情况,需要加入设置代理服务器的那几行代码.
要 是程序正确执行还要注意 必须把你的blog设置Email发布功能,要设置一个机密字,程序中输入的用户名和密码不是你msn spaces的用户名密码,而是spaces的子域名和机密字. 这样程序就可以对blog的文章进行抓取.通过MetaWeblogApi还可以进行更多的操作,如发布文章,删除文章等等.
最后的任务就是把抓下来的文章生成xml.
条条道路通罗马 虽然不指望所有路都可以通,但总有路能通的.Created by jecray
相关文章推荐
- 在建立与服务器的连接时出错。在连接到 sql server 2005 时 在默认的设置下 sql server 不允许进行远程连接
- 在连接到SQL Server2005时,在默认的设置下SQL Server不允许进行远程连接可能会导致此失败--的解决
- 在连接到SQL Server2005时,在默认的设置下SQL Server不允许进行远程连接可能会导致此失败--的解决
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
- 打开sql server 2000的1433端口和进行远程连接设置
- 使用Toad进行远程Oracle 12C数据连接
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, erro
- 使用ssh进行远程连接以及远程跳板以及scp远程上传下载文件说明
- Windows上使用Eclipse远程连接Hadoop进行程序开发
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
- 如何使用window自带的远程桌面连接进行远程文件的上传和下载
- 在连接到SQL Server2005时,在默认的设置下SQL Server不允许进行远程连接可能会导致此失败--的解决 ?
- python 使用ssh连接服务器进行远程命令行操作
- 在连接到sql server2005时,默认的设置下sqlserver不允许进行远程连接可能会导致此失败
- Linux服务器使用二:VMWare下设置网络连接并使用SSH2进行远程访问
- 在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 错误解决办法
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败
- 设置过mysql远程连接后仍然无法进行远程连接 (mysql mysql报错2003 can't connect)