Re: [問題] Plurk API 範例不能執行

看板java作者 (阿波)時間16年前 (2010/01/01 17:45), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/4 (看更多)
借標題發問 關於這個API範例 我自己有用Android試過 有時候可以成功發送訊息到plurk上面 但是並不是每次都會成功 大概是第一次執行程式或者隔很久才重新run一次時才會成功 以下是問題點 第一次的httpget時並不會有問題 就是輸入API_KEY和帳密的那些 第二次使用時(如以下範例程式碼) httpget = new HttpGet(getApiUri("/Timeline/plurkAdd?"+ "api_key=" + API_KEY + "&" + "content=" + "Hello+nasty" + "&" + "qualifier=" + "loves" + "&" + "lang=en" )); ResponseHandler responseHandler=new BasicResponseHandler(); ↓↓ 這裡總是會跑進去IOException裡面 try { httpclient.execute(httpget, responseHandler); } catch (ClientProtocolException e) e.printStackTrace() } catch (IOException e) { e.printStackTrace(); } 然後以下大概是DDMS給我落落長的錯誤訊息 at org.apache.http.client.HttpResponseException: BAD REQUEST at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:71) at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:59) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616) at c.bb.main.onCreate(main.java:80) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) at android.app.ActivityThread.access$1800(ActivityThread.java:112) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3948) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) at dalvik.system.NativeStart.main(Native Method) 我不知道底這個問題應該要怎麼解決 或許是Android emulator本身的問題吧 真是超奇怪的@@~ ※ 引述《erotic (eRoTiC)》之銘言: : 以下分享我的使用心得: : 官方提供的 Java 範例碼: : http://www.plurk.com/API/issueKey#java_example : API key 申請網址:http://www.plurk.com/API : 下載 Apache's HttpClient Library:http://hc.apache.org/httpcomponents-client/ : 範例碼需要修改的地方: : 一、 : private static String API_KEY = "dKkIdUCoHo7vUDPjd3zE0bRvdm5a9sQi"; : 要把 dKkIdUCoHo7vUDPjd3zE0bRvdm5a9sQi 換成自己申請到的 API key, : 二、 : HttpGet httpget = new HttpGet(getApiUri("/Users/login?"+ : "api_key=" + API_KEY + "&" + : "username=" + "user_x" + "&" + : "password=" + "user_x_pw" : )); : user_x 與 user_x_pw 要用自己實際的 Plurk 帳號/密碼取代, : 而且在執行程式前,要先登入自己的 Plurk。 : 三、 : httpget = new HttpGet(getApiUri("/Timeline/plurkAdd?"+ : "api_key=" + API_KEY + "&" + : "content=" + "Plurk+API+測試" + "&" + : "qualifier=" + "says" + "&" + : "qualifier_translated=" + "說" + "&" + : "lang=tr_ch" : )); : content:要發送的訊息 : qualifier:設定英文的修飾語,例如:says, likes, shares, gives... 等 : qualifier_translated:將英文的修飾語改成其它語言的修飾語 : lang:設定修飾語的語言,en代表英文,tr_ch代表正體中文 : 這樣就可以正常執行程式了 = = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.120.215

01/01 21:02, , 1F
有防洪條款, 你不可以短時間內發送同樣的訊息
01/01 21:02, 1F

01/02 03:04, , 2F
試著讓他等一下,再做下一步的動作~
01/02 03:04, 2F
這或許有可能是原因吧 就我自己在程式碼裡面修改"content"的內容 然後再compile讓他去跑一次 重複動作 其實還是會出現一樣的問題 後來我自己弄了一個EditText 在執行時手動輸入文字就都可以送出訊息了 ※ 編輯: csf90082 來自: 112.104.120.215 (01/02 20:44)
文章代碼(AID): #1BFSGkeo (java)
文章代碼(AID): #1BFSGkeo (java)