Korzystam z numeru IBM worklight i próbuję utworzyć adapter, który będzie podawał dane z poziomu Google places API.Jak tworzyć żądania HTTPS przy użyciu javascript na serwerze za pomocą Worklight?
chcę zadzwonić ten URL:
https://maps.googleapis.com/maps/api/place/search/json?key=AIzaSyCTlPms1pvhzeoRrBao5qW-DJMI_CWcbAM&location=52.0700,1.1400&radius=10000&sensor=false&name=coffee
Realizując ten URL działa poprawnie w przeglądarce, i wyświetla jakieś fajne JSON, że staram się uzyskać poprzez Worklight.
adapteryWorklight są tworzone w JavaScripcie, to co mam do tej pory:
function getCoffeeHouses() {
var input = {
method : 'get',
returnedContentType : 'json',
path : 'maps/api/place/search/json',
parameters : {
'key' : 'AIzaSyCTlPms1pvhzeoRrBao5qW-DJMI_CWcbAM',
'location' : '52.0700,1.1400',
'radius' : '10000',
'sensor' : 'false',
'name' : 'coffee'
}
};
var response = WL.Server.invokeHttp(input);
// Extract latitude and longitude from the response.
var type = typeof response;
if ("object" == type) {
if (true == response["isSuccessful"]) {
// Return JSON object with lat and lng.
return response["results"];
}
else {
// Returning null. Web request was not successful.
return null;
}
}
else {
// Returning null. Response is not an object.
return null;
}
}
I to jest wynik, który mam w konsoli podczas badania powyższego:
Failed to parse JSON string
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 404 (Not Found)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}
</style>
<a href=//www.google.com/><img src=//www.google.com/images/errors/logo_sm.gif alt=Google></a>
<p><b>404.</b> <ins>That’s an error.</ins>
<p>The requested URL <code>/maps/api/place/search/json?key=AIzaSyCTlPms1pvhzeoRrBao5qW-DJMI_CWcbAM&location=52.0700%2C1.1400&radius=10000&sensor=false&name=coffee</code> was not found on this server. <ins>That’s all we know.</ins>
Caused by: java.io.IOException: Unexpected character '<' on line 1, column 1
[2012-07-23 11:08:57] An error occurred while invoking procedure CoffeeFinder/getCoffeeHouses parameters: {
"arr": [
]
}
null
Caused by: null
Myślę, że jest to prawdopodobnie spowodowane tym, że adapter żąda jako HTTP, podczas gdy powinien używać protokołu HTTPS.
Jeśli zmienię żądanie użycia protokołu HTTP w przeglądarce, wyświetli się podobne wyniki.
Pytanie: Czy mogę wysłać żądanie HTTPS, zmieniając powyższy skrypt JavaScript, czy też nieporozumienia adapterów świateł roboczych?
Ja też mam podobny problem .. Wspomniałem o wszystkich najbardziej typach treści, ale ich nie działa. – Sarath
Opis błędu: "Serwer odrzucił to żądanie, ponieważ obiekt żądania jest format nieobsługiwany przez żądany zasób dla żądanej metody (nieobsługiwany typ nośnika) ".... podałem Content-Type:" application/json ".. ale nadal presist problemu. – Sarath