我目前正在使用Android教程的视频10(http://marakana.com/s/post/1046/threading_android_demo),我正在努力让状态更新起作用。
当我使用提供的JTwitter-yamba库时,我得到301异常,说“301(永久移动)”
它实际上能够发布状态,但很快就会崩溃。
从这个stackoverflow看来,使用更新的JTwitter库似乎应该修复它: Authorization error with jTwitter for android
当我使用最新的JTwitter库(2.8.8)时,出现以下错误:“HTTP \ 1.1 Bad Request”
我也得到:
[06-23 00:05:13.244:E / AndroidRuntime(3329):{“error”:“客户必须提供带有值的'status'参数。”,“request”:“/ api / status / / update.json“} http://yamba.marakana.com/api/statuses/update.json ]
我不确定该怎么做..
任何帮助表示感谢。
福阿德。
我正在使用的StatusActivity.java代码:
package com.example.yamba;
import winterwell.jtwitter.Twitter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
public class StatusActivity extends Activity {
EditText editStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.status); //
editStatus = (EditText) findViewById(R.id.edit_status);
}
public void onClick(View v) {
final String statusText = editStatus.getText().toString();
new Thread() {
@Override
public void run() {
Twitter twitter = new Twitter("student", "password");
twitter.setAPIRootUrl("http://yamba.marakana.com/api"); // redirecting
twitter.setStatus(statusText);
Log.d("StatusActivity", statusText);
}
}.start();
Log.d("StatusActivity", "Reached this point");
}
}
我得到的logcat错误:
06-23 15:20:46.898: W/dalvikvm(28815): threadid=11: thread exiting with uncaught exception (group=0x41b91540)
06-23 15:20:46.898: E/AndroidRuntime(28815): FATAL EXCEPTION: Thread-8268
06-23 15:20:46.898: E/AndroidRuntime(28815): winterwell.jtwitter.TwitterException: 400 Bad Request
06-23 15:20:46.898: E/AndroidRuntime(28815): HTTP/1.1 400 Bad Request
06-23 15:20:46.898: E/AndroidRuntime(28815): {"error":"Too many duplicate messages too quickly; take a breather and post again in a few minutes.","request":"\/api\/statuses\/update.json"} http://yamba.marakana.com/api/statuses/update.json
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.URLConnectionHttpClient.processError(URLConnectionHttpClient.java:517)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.URLConnectionHttpClient.post2_connect(URLConnectionHttpClient.java:412)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.URLConnectionHttpClient.post2(URLConnectionHttpClient.java:378)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.URLConnectionHttpClient.post(URLConnectionHttpClient.java:347)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.Twitter.updateStatus(Twitter.java:2762)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.Twitter.updateStatus(Twitter.java:2694)
06-23 15:20:46.898: E/AndroidRuntime(28815): at winterwell.jtwitter.Twitter.setStatus(Twitter.java:2482)
06-23 15:20:46.898: E/AndroidRuntime(28815): at com.example.yamba.StatusActivity$1.run(StatusActivity.java:31)
答案 0 :(得分:0)
{“错误”:“太多重复的邮件太快;请稍稍休息一下 再发一些 分钟 “” 请求 “:”/ API /状态/ update.json“}
这是非常自我解释的。您一遍又一遍地发布相同的消息。这用于防止垃圾邮件发送者滥用API。
答案 1 :(得分:0)
实际上,我想我发现为什么之前没有用。当我尝试一次发布太多状态更新时,它阻止了我!我猜JTwitter不喜欢你发帖太多因为它认为你可能会滥用这个系统?