Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用Prowser自动登录网页_Java - Fatal编程技术网

在Java中使用Prowser自动登录网页

在Java中使用Prowser自动登录网页,java,Java,我试图模拟一个网站的自动登录行为,并在使用Java中的库登录后删除HTML 代码片段: <br> Prowser prowser = new Prowser();<br> Tab tab = prowser.createTab();<br> Request request;<br> String html ="";<br> try {<br> request = new Request("http://usernam

我试图模拟一个网站的自动登录行为,并在使用Java中的库登录后删除HTML

代码片段:

<br>
Prowser prowser = new Prowser();<br>
Tab tab = prowser.createTab();<br>
Request request;<br>
String html ="";<br>
try {<br>
    request = new Request("http://username:password@www.gmail.com");<br>
    Response response = tab.go(request);<br>
    html = response.getPageSource();<br>
} catch (Exception e) {<br>
    e.printStackTrace();<br>
}<br>
System.out.println(html);<br>

Prowser Prowser=new Prowser()
Tab Tab=prowser.createTab()
请求
字符串html=“”
试试{
请求=新请求(“http://username:password@www.gmail.com”);
响应=制表符转到(请求);
html=response.getPageSource();
}捕获(例外e){
e、 printStackTrace();
}
System.out.println(html)
使用此代码,如果我的用户名不包含@,我可以登录并删除HTML。但如果username是emailId,那么它将不起作用并返回null

当我的用户名中有@时,如何使用此库的任何建议。或任何其他适合我尝试做的图书馆


谢谢。

我相信您可以使用%40(即@)对其进行URL编码。服务器应该能够正确解码,但是当然。。。这取决于服务器的实现。

这方面的Java代码是
urlcoder.encode(用户名)
Hi Mike,谢谢你的建议。”sphreg.asiaone.com/RegAuth2/enLogin.html“这是我尝试登录的页面,但编码后也不起作用。您是只对用户名进行编码还是对整个URL字符串进行编码?我建议的代码是
request=newrequest(“http://”+urlcoder.encode(“用户名”)+”:password@www.gmail.com");是的,也是这样做的。但它只需要我登录页面,而不是登录。和废弃的HTML一样,它为我的登录页面提供了HTML。好吧,浏览器(和Prowser)所做的就是获取用户名和密码,并在“授权”标题中对其进行Base64编码。因此,您可以尝试在请求中添加一个值为
“Basic”+Base64.encode(“username:password”)