2012-04-24 5 views
0

Java EEを使用して公開されたapiメソッド(ここでは更新ワークスペース)のいずれかで PUTリクエストを実行したことがありますか?JavaからAsanaへのPUT

は、私は現在、次のスニペットを持っていますが、 データ変数の場合は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(); 

答えて

0

(作業領域名を更新するためにPUTを使用して)試みている操作が有効です。あなたの問題は、あなたがURLと "名前=私のサンドボックス"という文字列全体をURLエンコードすることであり、キーと値は独立しているわけではないと思います。だから私は、あなたが送信しているデータペイロードがあると思われる:

名%3DMy%20Sandbox

それがあるべきに対し:

名=私%20サンドボックス

するとAPIサーバエラーを彼らはしばしば問題を明らかにするのに役立つ何らかの診断メッセージを含んでいます。上記の修正がうまくいかない場合、受信しているエラーメッセージを提供できますか?

関連する問題