Hallo, ich habe folgendes cURLWie bekomme ich die JSON-Daten von dieser HttpURLConnection-Implementierung von cURL konvertiert?
curl -X GET --header "api-key: sOmE-API-kEy" "https://api.data.gov.sg/v1/environment/uv-index?date=2016-06-01"
, die ich von der Website bekam die Daten für intelligente Nation bietet ihre Website gibt richtige json Daten ihre Formulare verwenden, aber ich möchte dies über den Code tun, so weit eine HttpURLConnection mit Ich folge den Code-Referenzen, die ich online gefunden habe, aber es funktioniert nicht und ich konnte nicht sehen, was falsch ist, ich bekomme die NetworkOnMainThreadException, die ich gelöst habe, indem ich es als eine AsyncTask implementiere, aber wenn ich in android Studio debugge jetzt mit einer FileNotFoundException zurück. Ich habe auch versucht, den unten vorgeschlagenen TrustedManager usw. zu verwenden, und es hat immer noch den gleichen Fehler. eine Sache, die ich bemerkt, ist, wenn ich auf die Website gehen und klicken Sie auf die Schaltfläche und sehen es die folgenden ist die in Firebug, die processessed ist ...
https://apiconsole-prod.apigee.net/smartdocs/v1/sendrequest?targeturl=https%3A%2F%2Fapi.data.gov.sg%2Fv1%2Fenvironment%2Fuv-index%3Fdate%3D2016-06-01&_=1469245322558
aber wenn ich geben Sie direkt aus dem Browser die Antwort so etwas wie dieses hat ... steps.oauth.v2.FailedToResolveAPIKey% 22% 7D% 7D% 7D“, "responseStatusCode": "401"
URL url = new URL("https://api.data.gov.sg/v1/environment/uv-index?date=2016-06-01");
urlConn = (HttpURLConnection)url.openConnection();
urlConn.setRequestMethod("GET");
urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setRequestProperty("Content-Type", "application/json");
urlConn.setRequestProperty("Accept", "application/json");
urlConn.setRequestProperty("api-key", "sOmE-API-kEy");
in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String line;
StringBuilder buffer = new StringBuilder();
while ((line = in.readLine()) != null) {
buffer.append(line).append('\n');
}
// Chomp the last newline
buffer.deleteCharAt(buffer.length() - 1);
** Anmerkung apikey für
Privatsphäre umbenanntso kurz die Header-Daten von Firebug, wie ich meine ht tp Codeimplementierung
Accept
*/*
Accept-Encoding
gzip, deflate, br
Accept-Language
en-US,en;q=0.5
DNT
1
Host
apiconsole-prod.apigee.net
Origin
https://developers.data.gov.sg
Referer
https://developers.data.gov.sg/datagovsg-apis/apis/get/environment/uv-index
User-Agent
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
api-key: sOmE-API-kEy
ich es geschafft th NetworkOnMainThreadException zu lösen in http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception links das einzige Problem ist, ich kann nicht bekommen fand die AsyncTask-Lösung das gleiche Ergebnis wie wenn ich das Formular der Website verwende ... – debonaire
Versuchen Sie, die Zertifikatsprüfung SSL zu deaktivieren –
noch nicht Ich werde es jetzt versuchen. Danke für den Vorschlag Ich werde Sie über das Ergebnis bald aktualisieren – debonaire