我需要使用json请求创建一个java.net url fetch。请告诉我如何在google appengine中使用java调用它

时间:2013-12-11 07:38:53

标签: google-app-engine httpurlconnection google-groups-api google-directory-api

这是我的HTTP网址

POST HTTPS://www.googleapis.com/admin/directory/v1/group
MY json request 
{
   "email": "sales_group@example.com",
   "name": "Sales Group",
   "description": "This is the Sales group."
}

我正在使用Directory API创建群组。

到目前为止我从未使用过URL提取,所以我对此并不熟悉。 请帮帮我,我该怎么做..

这是我2小时后发布的答案。 stackoverflow不允许我在8小时之前回答我自己的问题,因为我的声誉不到10,所以请原谅我长期提问。 我试过这个..     我在传递json作为参数方面有点挣扎。这是我的代码

import java.io.IOException;

import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.logging.Logger;

import javax.servlet.http.*;

import com.google.appengine.labs.repackaged.org.json.JSONException;
import com.google.appengine.labs.repackaged.org.json.JSONObject;

@SuppressWarnings("serial")
public class DirectoryApiExampleServlet extends HttpServlet {
        static Logger log = gger.getLogger(DirectoryApiExampleServlet.class.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
     URL url = new URL("https://www.googleapis.com/admin/directory/v1/groups");
     HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Content-Type", "application/json");
    connection.setRequestProperty("Accept", "application/json");
    OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
    JSONObject json = new JSONObject();
    try {
        json.put("email", "abc@gmail.com");
        json.put("name", "Test Group");
        json.put("description", "this is a test group");
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    writer.write(json.toString());
    writer.flush();
    writer.close();
    log.info("connection.getResponseCode()"+connection.getResponseCode());        
}

}

但它给出了401回应,这是不可预期的。

我在哪里弄错了???

2 个答案:

答案 0 :(得分:1)

有关于如何发出POST请求的文档。还提供了一个例子。请查看以下部分:https://developers.google.com/appengine/docs/java/urlfetch/usingjavanet#Using_HttpURLConnection

答案 1 :(得分:0)

您需要使用Access Token

添加授权标头

授权:持票人ya29.vQE48oltidkR