作者csf90082 (阿波)
看板java
标题Re: [问题] Plurk API 范例不能执行
时间Fri Jan 1 17:45:10 2010
借标题发问
关於这个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
1F:推 qrtt1:有防洪条款, 你不可以短时间内发送同样的讯息 01/01 21:02
2F:→ askeing:试着让他等一下,再做下一步的动作~ 01/02 03:04
这或许有可能是原因吧
就我自己在程式码里面修改"content"的内容
然後再compile让他去跑一次
重复动作
其实还是会出现一样的问题
後来我自己弄了一个EditText
在执行时手动输入文字就都可以送出讯息了
※ 编辑: csf90082 来自: 112.104.120.215 (01/02 20:44)