Sto scherzando con IBM worklight e sto provando a creare un adattatore per inserire alcuni dati dallo Google places API.Come fare richieste HTTPS con serveride javascript usando Worklight?
voglio chiamare questo 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
L'esecuzione di questo URL funziona bene in un browser e visualizza qualche bel JSON che sto cercando di ottenere attraverso Worklight.
adattatoriil faro da lavoro sono creati in Javascript, questo è quello che ho finora:
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;
}
}
E questo è il risultato che ottengo nella console, quando prova quanto sopra:
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
Penso che questo sia probabilmente causato dal fatto che l'adattatore richiede come HTTP, mentre dovrebbe usare HTTPS.
Se si modifica la richiesta di utilizzare HTTP in un browser, vengono visualizzati risultati simili.
Domanda: Posso fare una richiesta HTTPS modificando il Javascript sopra, o sto fraintendendo gli adattatori per fari da lavoro?
anche io ho un problema simile .. ho menzionato tutti i tipi di contenuti, ma non funziona affatto. – Sarath
La descrizione dell'errore è "Il server ha rifiutato questa richiesta perché l'entità della richiesta è in un formato non supportato dalla risorsa richiesta per il metodo richiesto (Tipo di supporto non supportato) ".... ho specificato il Content-Type: 'application/json' .. ma il problema rimane presente .. – Sarath