1
Aşağıdakiler işe yarar, ancak sunucu 403 kodu döndürdüğünde, sunucu yanıtını hiçbir zaman döndürme yöntemiyle sonuçlanan bir istisna atar.HttpUrlConnection ile ilgili verileri http 253.404, vb. Ile birlikte HttpUrlConnection ile geri alma
public String ping(String lat, String lon)
{
StringBuffer response = null;
try
{
String url = "https://api.mysite.com";
URL urlObj = new URL(url);
HttpsURLConnection con = null;
if (useProxy)
{
con = (HttpsURLConnection) urlObj.openConnection(proxy);
}
else
{
con = (HttpsURLConnection) urlObj.openConnection();
}
// add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Content-Type", "application/json; charset=utf-8");
con.setRequestProperty("Host", urlObj.getHost());
con.setRequestProperty("Connection", "Keep-Alive");
// con.setRequestProperty("Accept-Encoding", "gzip");
String urlParameters = "{\"lat\":" + lat + ",\"lon\":" + lon + "}";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
// System.out.println("\nSending 'POST' request to URL : " + url);
// System.out.println("Post parameters : " + urlParameters);
// System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
response = new StringBuffer();
while ((inputLine = in.readLine()) != null)
{
response.append(inputLine);
}
in.close();
// print result
// System.out.println(response.toString());
}
catch (Exception e)
{
e.printStackTrace();
}
return response.toString();
}
Nasıl bu olursa olsun sunucu yanıtını dönmek yapabilir ne sunucu döndürür ve sunucu 403 koduyla (veya başka bir tepki kodu) ile yanıt bile?
Sorunuzu doğru bulursanız, aradığınız şeyin bu olduğuna inanıyorum. Cevap kodunu 'con.getResponseCode();' kullanarak kontrol edebilirsiniz ve eğer başarı kodu 'HttpURLConnection.HTTP_OK' ise verileri okumak için' con.getInputStream() 'kullanabilir ya da' con.getErrorStream’i kullanabilirsiniz.() 'hata mesajını okumak için. –