我正在尝试使用rest api从我的AppEngine向mongohq服务器发送post请求。
我使用以下代码:
public static void post(String id, String context)
{
String urlString = "https://api.mongohq.com/databases/db/collections/collection/documents?_apikey=XXXXXXXXXX";
String data = "{\"document\" : {\"_id\": \"" + id+ "\", \"context\":" + context +"}}";
try
{
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Length", "" + Integer.toString(data.getBytes().length));
connection.setUseCaches(false);
DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
wr.writeBytes(data);
wr.flush();
wr.close();
System.out.println(connection.getResponseMessage());
connection.disconnect();
}
catch (Exception e)
{
System.out.println("postToMongo: "+ e);
}
}它在Appengine外部运行得很好,但当我在Appengine内部执行同样的操作时,不会向mongodb发送任何内容。
该函数在Appengine外部和内部打印OK,但只有当我在Appengine外部使用此函数时,数据才会出现在数据库中。
此外,一个简单的jave get函数可以在Appengine外部和内部工作。
有人能帮我解决这个问题吗?我在寻找一种从Appengine内部发布到Mongohq的方法。
谢谢
发布于 2013-09-21 15:17:10
试试这个:
OutputStreamWriter writer;
writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
writer.write(message);
writer.close();https://stackoverflow.com/questions/18926379
复制相似问题