Server returned HTTP response code: 403 for URL:(Wie kann ich dieses Problem beheben?)
Behalte ich bekomme immer obige Fehlermeldung wenn ich den folgenden code. Alle Zeichen deuten auf ein problem mit COOKIES von dem, was ich gelesen habe. Wenn ich richtig bin,wie würde ich mich über die Umsetzung der CookieManager um dieses Problem zu beheben? Oder wie würde ich das Problem beheben, wenn es nicht ein Problem mit COOKIES?
public class Client {
public Client(){
}
String executePost(String targetURL, String urlParameters){
URL url;
HttpURLConnection connection = null;
try{
//Create connection
url = new URL(targetURL);
connection = (HttpURLConnection)url.openConnection();
connection.setChunkedStreamingMode(0);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length", "" +
Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
//send Request
DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
dataout.writeBytes(urlParameters);
dataout.flush();
dataout.close();
//get response
InputStream is = connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while((line = br.readLine()) != null){
response.append(line);
response.append('\n');
}
System.out.println(response.toString());
br.close();
return response.toString();
}catch(Exception e){
System.out.println("Unable to full create connection");
e.printStackTrace();
return null;
}finally {
if(connection != null) {
connection.disconnect();
}
}
}
}
- Möglicherweise sind Sie nicht berechtigt für den Zugriff auf diese url...
- Wie bekomme ich es? Ich bin senden von Informationen an einen PHP-Datei befindet sich in meinem PUBLIC_HTML Ordner. Die PHP-Datei dann Zugriff auf eine mysql-Datenbank und gibt die angeforderten Daten.
- auf dem Gesicht von ihm, das ist richtig. Jedoch, es wird davon ausgegangen, dass der server mit der rechten status-code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich entfernt : Verbindung.setChunkedStreamingMode(0); und der code funktionierte, wie es sollte
Einen 403 response bedeutet "verboten".
Es ist nicht so einfach.
Kann es sein, dass Sie liefern müssen gültige Anmeldeinformationen (in form von cookies, basic-auth-Header oder etwas anderes). Sie erwarten jedoch, dass der server antwortet mit einer 401 in diesem Fall, oder eine 302-Umleitung Ihrem browser die login-Seite.
Kann es auch sein, dass Sie geliefert haben, Anmeldeinformationen, und Sie sind nicht ausreichend für die Anforderung, die Sie durchführen möchten.
Ihre beste Wette ist, um herauszufinden, was genau passiert, wenn Sie versuchen, anmelden und den service nutzen, von Ihrem web-browser. Dann versuchen zu replizieren, dass. Alternativ Lesen Sie die Website Dokumentation, oder Fragen Sie den site-admins was zu tun ist.
Wenn es Ihre Website /server, den Sie zugreifen möchten, dann müssen Sie herausfinden, wie die Sicherheit implementiert wird. Vielleicht haben Sie falsch konfiguriert den server, oder vernachlässigt einrichten /aktivieren login.
Ist es unwahrscheinlich, dass (IMO), dass Sie dieses problem lösen, indem nur Einrichtung einer Cookie-Manager.
Wenn Sie finden Sie in der API-Dokumentation der
setChunkedStreamingMode
, es wurde dort erwähnt, dass nicht alle Server unterstützen diesen Modus. Sind Sie sicher, dass der server Sie eine Verbindung zu dies unterstützt ?