我正在使用eclipse編寫一個servlet,它接收來自客戶端的POST請求,該請求應該對收到的文本進行一些拆分,訪問Google地理位置api以獲取一些數據並顯示給用戶。來自Servlet的POST請求
在本地主機上,這工作得很好。在實際的服務器上(使用Openshift和CloudBees嘗試),這不起作用。我可以看到分裂的回覆,但不是來自Google地理位置服務的回覆。總是有一個錯誤從Google服務登錄到控制檯。但是,相同的代碼在localhost上工作得很好。
後,我收到在servlet的doPost
方法POST請求,我做了以下訪問谷歌地理位置服務:
//Attempting to send data to Google Geolocation Service
URL url;
HttpURLConnection connection = null;
try {
//Create connection
url = new URL("https://www.googleapis.com/geolocation/v1/geolocate?key=MyAPI");
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);
//Send request with data (output variable has the JSON data)
DataOutputStream wr = new DataOutputStream (
connection.getOutputStream());
wr.writeBytes (output);
wr.flush();
wr.close();
//Get Response
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response2 = new StringBuffer();
while((line = rd.readLine()) != null) {
response2.append(line);
response2.append('\r');
}
rd.close();
//Write to Screen using out=response.getWriter();
out.println("Access Point's Location = " + response2.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
if(connection != null) {
connection.disconnect();
}
你能告訴我爲什麼發生這種情況,我該怎麼做這項工作?我應該使用AJAX之類的東西還是有其他解決方法?我對編碼比較陌生,因此在這個階段試圖避免學習AJAX。請允許我,如果有任何其他方式使此工作
*這行不通。*有點模糊。 「我可以看到分裂的答覆,但不是來自Google地理定位服務的答覆。」這是否意味着請求被超時取消? –
我相信它暫停。日誌顯示谷歌錯誤403,這意味着每日限制超越..但如果我在本地執行相同的東西,它的工作原理很好...... –