我嘗試將用戶名和密碼發佈到網站以登錄(通過使用https://stackoverflow.com/a/4206094/3473236處的代碼片段)。我嘗試了不同的方法來做同樣的事情,但每次我都採用HTTP響應代碼405,這意味着方法不被允許。顯然這與代碼上可能出現的錯誤無關。有沒有辦法處理HTTP響應代碼405?
怎樣才能以編程方式登錄系統,並從那裏獲取一些信息?有沒有更好的方法來做到這一點?
我嘗試將用戶名和密碼發佈到網站以登錄(通過使用https://stackoverflow.com/a/4206094/3473236處的代碼片段)。我嘗試了不同的方法來做同樣的事情,但每次我都採用HTTP響應代碼405,這意味着方法不被允許。顯然這與代碼上可能出現的錯誤無關。有沒有辦法處理HTTP響應代碼405?
怎樣才能以編程方式登錄系統,並從那裏獲取一些信息?有沒有更好的方法來做到這一點?
如果發送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
響應。
你確定問題是HTTP方法嗎?有幾個API濫用HTTP返回代碼,所以問題可能不在於使用POST,而是例如憑證錯誤。有更多的細節會有所幫助。 –
您可以發佈您的代碼(包括您嘗試登錄的網站) - 您可以匿名用戶名/密碼。 – Glorfindel
該網站可能會拒絕來自[User Agents](https://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx)的不認可的請求,或者您不傳遞適當的cookie值(在用戶預期訪問的前一頁上設置)或許多其他事情。嘗試在您的網絡瀏覽器中訪問它,如果有效,請查看HTTP標頭並查看您沒有發送的內容。 – MT0