我試圖通過插入用戶名和密碼來使用java來訪問這個website的程序,然後在我登錄時從帳戶獲取一些數據。我通過谷歌搜索了很多並嘗試了一些code,但我沒有實現這一點很幸運。有什麼建議麼?通過Java登錄到網站?
回答
您使用的代碼是舊技術; Commons HttpClient是一個更簡單,更強大的選項,並有大量的在線示例和文檔。如果你不反對Ruby,我會把Watir加入混合;或者如果您實際上不需要代碼,並且只需要一個簡單的記錄回放自動化,則Selenium是一個不錯的選擇。
缺乏對語言的理解我無法給你具體的建議。
但是,要走的路是檢查網頁上的表格。然後,您可以向此處定義的網站發送發佈請求。
作爲帖子主體,您可以發送表單參數,就像它們顯示爲URL參數一樣。
<!-- language: lang-js -->
String payload = "password=test&user=test" // password and user must be replaced with the names of the form fields and test with password and username respectively
HttpURLConnection configConnection = new URL(formTarget).openConnection();
System.out.println("+------------------------------------------------------");
System.out.println("| Request ");
System.out.println("+------------------------------------------------------");
System.out.println("| URL: " + configConnection.getURL());
System.out.println("+------------------------------------------------------");
System.out.println("| Payload ");
System.out.println("+------------------------------------------------------");
System.out.println(payload);
configConnection.setDoOutput(true);
configConnection.setRequestMethod("POST");
configConnection.getOutputStream().write(payload.getBytes());
InputStream xmlInputStream = configConnection.getInputStream();
int _byte = -1;
ByteArrayOutputStream bios = new ByteArrayOutputStream();
while ((_byte = xmlInputStream.read()) > -1) {
bios.write(_byte);
}
final byte[] responseBytes = bios.toByteArray();
String responseString = new String(responseBytes);
System.out.println("+------------------------------------------------------");
System.out.println("| Response ");
System.out.println("+------------------------------------------------------");
System.out.println("| Code: " + configConnection.getResponseCode());
System.out.println("+------------------------------------------------------");
System.out.println(responseString);
System.out.println("+------------------------------------------------------");
爲了更好地分析您可以使用tagsoup庫將其轉變爲適當的XHTML輸出。
沒有這樣的方法:'write(String)' –
configConnection.getOutputStream()。write(payload.getBytes()); //忘了從我的例子中改變它 – DoubleMalt
'isCompressed()'怎麼辦? –
- 1. 通過java登錄網站
- 2. 通過Java登錄到網站
- 3. 如何通過java登錄到網站?
- 4. 通過API登錄網站
- 5. 登錄通過C#網站
- 6. 通過代理登錄到網站
- 7. 通過外部網站登錄到Moodle
- 8. 通過請求登錄到網站
- 9. 通過C#登錄到網站
- 10. Python通過twitter登錄到網站
- 11. 通過wget登錄到網站
- 12. 通過powershell登錄到內部網站
- 13. 登錄到http網站java
- 14. 登錄網站(Java)
- 15. 登錄到多個網站只能通過登錄一次在我的網站
- 16. 通過JSoup通過Post登錄到網站
- 17. Yii網站通過Android登錄AsyncTask
- 18. 通過Android應用登錄https網站
- 19. 通過Facebook登錄Django網站
- 20. ZAP掃描網站,通過登錄
- 21. 通過代碼登錄網站
- 22. 通過Jsoup在網站上登錄
- 23. Sharepoint 2010通過其他網站登錄
- 24. 登錄到網站
- 25. 用java登錄HTTPS網站
- 26. 用java登錄網站
- 27. 使用java登錄網站
- 28. 如何通過網址提供登錄到WordPress的網站?
- 29. 通過Python中的網絡抓取工具登錄到網站
- 30. 自動登錄到網站 - Java
你會得到什麼錯誤信息? – Jonas
我沒有得到任何錯誤,只是得到這個消息'成功地做出了HTPP POST',然後'Recevied response is:'後面跟着頁面的內容 –
向我們展示你現在使用的代碼。 – Marcelo