从Java进入Asana

时间:2012-04-24 19:09:22

标签: asana

我想知道你是否在执行PUT请求时取得了成功 一个暴露的api方法(在这种情况下更新工作区)使用 Java EE。

我目前有以下代码片段,但我得到了400分 数据变量,我试过可能每一个排列的地方 放置双引号,要编码的内容,还尝试过JSON。

String data = URLEncoder.encode("name=My Sandbox", "UTF-8")
URL url = new URL("https://app.asana.com/api/1.0/workspaces/7**********2");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setRequestMethod("PUT");
String login = "dm**********************v8:";
String encodedLogin = new BASE64Encoder().encode(login.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedLogin);
OutputStreamWriter wr = null;
conn.setDoOutput(true);
wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {
    sb.append(line);
}
wr.close();
rd.close();

1 个答案:

答案 0 :(得分:0)

您正在尝试的操作(使用PUT更新工作区名称)应该有效。我相信你的问题是你是URLEncoding整个字符串“name = My Sandbox”而不是独立的键和值。所以我怀疑你发送的数据有效负载是:

名称%3DMy%20Sandbox

它应该是:

name = My%20 Sandbox

当API服务器出错时,它们通常包含某种诊断消息,可以帮助您发现问题。如果上述修复无效,您能否提供您收到的错误消息?