essaie de se connecter à mon application Web en utilisant facebook, il travaillait Okey jusqu'à récemment, je commencé à obtenir cette erreurEnvoyer JSON chaîne de requête
java.net.URISyntaxException: Illegal character in query at index 43: https://graph.facebook.com/me?access_token={"access_token":"E","token_type":"bearer"}
essaie de le résoudre en utilisant le dessous
public static void main(String[] args) {
String accessToken = "{\"access_token\":\"E\",\"token_type\":\"bearer\"}";
try {
//String urlStr = "https://graph.facebook.com/me?access_token=" + URLEncoder.encode(accessToken,"UTF-8");
String urlStr = "https://graph.facebook.com/me?access_token=" +accessToken;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(urlStr);
httpget.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpget, responseHandler);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
également essayé d'utiliser après la demande
public static void main(String[] args) {
String accessToken = "{\"access_token\":\"E\",\"token_type\":\"bearer\"}";
try {
//String urlStr = "https://graph.facebook.com/me?access_token=" + URLEncoder.encode(accessToken,"UTF-8");
String urlStr = "https://graph.facebook.com/me";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpget = new HttpPost(urlStr);
httpget.setEntity(new StringEntity("access_token="+accessToken));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpget, responseHandler);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Mais il produit l'exception ci-dessous
org.apache.http.client.HttpResponseException: Bad Request
at org.apache.http.impl.client.AbstractResponseHandler.handleResponse(AbstractResponseHandler.java:69)
at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:65)
at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:51)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:222)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139)
at com.simsarak.servlet.facebook.FacebookLogin.main(FacebookLogin.java:178)
a essayé d'utiliser les URLEncoder
et la mise en-têtes à application/json
mais ne fonctionne toujours pas, Quel pourrait être le problème?
Pourquoi ne vous le mettre dans la demande corps?? – xenteros
produit une mauvaise requête, essayé avec une combinaison différente d'en-têtes et d'encodage –
Où exactement est-il défaillant? Que diriez-vous de présenter la trace de la pile qui va avec cette exception? –