2015-06-08 59 views
-2

我嘗試將用戶名和密碼發佈到網站以登錄(通過使用https://stackoverflow.com/a/4206094/3473236處的代碼片段)。我嘗試了不同的方法來做同樣的事情,但每次我都採用HTTP響應代碼405,這意味着方法不被允許。顯然這與代碼上可能出現的錯誤無關。有沒有辦法處理HTTP響應代碼405?

怎樣才能以編程方式登錄系統,並從那裏獲取一些信息?有沒有更好的方法來做到這一點?

+1

你確定問題是HTTP方法嗎?有幾個API濫用HTTP返回代碼,所以問題可能不在於使用POST,而是例如憑證錯誤。有更多的細節會有所幫助。 –

+2

您可以發佈您的代碼(包括您嘗試登錄的網站) - 您可以匿名用戶名/密碼。 – Glorfindel

+1

該網站可能會拒絕來自[User Agents](https://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx)的不認可的請求,或者您不傳遞適當的cookie值(在用戶預期訪問的前一頁上設置)或許多其他事情。嘗試在您的網絡瀏覽器中訪問它,如果有效,請查看HTTP標頭並查看您沒有發送的內容。 – MT0

回答

0

如果發送POST請求http://registration.boun.edu.tr/那麼你得到一個405 Method Not Allowed響應和HTTP標頭:

Allow: GET, HEAD, OPTIONS, TRACE 
Content-Length: 101 
Content-Type: text/html 
Date: Mon, 08 Jun 2015 20:48:35 GMT 
Server: Microsoft-IIS/8.5 

注意Allow屬性意味着服務器預計將只接收那些HTTP請求方法(而不是POST)。

如果你使用:

import java.net.HttpURLConnection; 
import java.net.URL; 

public class Test { 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     URL url   = new URL("http://registration.boun.edu.tr"); 
     HttpURLConnection conn= (HttpURLConnection) url.openConnection();   
     conn.setRequestMethod("GET"); 
     conn.connect(); 
     System.out.println(conn.getResponseCode()); 
    } 
} 

然後你得到一個200 OK響應。

+0

重點是沒有得到200 OK響應。正如我所說我想登錄。由於POST不允許,所以我想知道還有另一種方法可以做到這一點。 – bugrahan

+1

是 - 使用實際接受登錄名的URI而不是索引頁。 '的https:// registration.boun.edu.tr /腳本/ loginst.asp' – MT0

相關問題