- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
最初我的 Activity 使用 token 调用 new DropboxApi(token).execute();
。
public class DropboxApi extends AsyncTask<Void, Long, Boolean> {
public String token;
public DropboxApi(String a) {
// TODO Auto-generated constructor stub
token=a;
}
String HMAC_SHA1_ALGORITHM = "HmacSHA1";
public String Sign(String token)// throws Exception
{
String uri = "https://api.dropbox.com/1/account/info";
//Uri json = GetResponse(uri);
//return ParseJson<Account>(json);
uri+="?";
String queryParams = "oauth_consumer_key=2f2y1dyuqhp58ek&oauth_token="+token+"&oauth_nonce=6880853&oauth_timestamp=";
java.util.Date date= new java.util.Date();
//System.out.println(new Timestamp(date.getTime()));
queryParams+=(new Timestamp(date.getTime()).toString())+"&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=";
uri+=queryParams;
Mac mac=null;
try {
mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Key key=new SecretKeySpec("2f2y1dyuqhp58ek".getBytes(), HMAC_SHA1_ALGORITHM) ;
try {
mac.init(key);
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] rawHmac = mac.doFinal(queryParams.getBytes());
String result=new String(Base64.encode(rawHmac,Base64.DEFAULT));
uri+=result;
return uri;
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO Auto-generated method stub
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(Sign(token));
int k=0;
k=23;
HttpResponse response;
try {
int j=3;
j=0;
response = httpclient.execute(httpPost); // the request executes
Log.d("HTTP","Executed");
String responseBody = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {
e.printStackTrace();
}
catch(ConnectTimeoutException e){
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
//return null;
return null;
}
}
在调试中,代码工作正常,直到它返回 uri..which is:
https://api.dropbox.com/1/account/info?oauth_consumer_key=2f2y1dyuqhp58ek&oauth_token=wz27t6thob0fbxl&oauth_nonce=6880853& oauth_timestamp=2012-06-24 23:46:51.734&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=s8zaFHmQJ24BTxTYV4VUSLdV9d8=
这是我第一次发出 http 请求..这段代码应该有效吗?
06-24 23:44:47.364: E/AndroidRuntime(11315): at dalvik.system.NativeStart.main(Native Method)
06-24 23:44:53.033: I/Process(11315): Sending signal. PID: 11315 SIG: 9
06-24 23:45:43.404: W/ActivityThread(11375): Application cloud.mobile is waiting for the debugger on port 8100...
06-24 23:45:43.563: I/System.out(11375): Sending WAIT chunk
06-24 23:45:43.683: I/dalvikvm(11375): Debugger is active
06-24 23:45:43.846: I/System.out(11375): Debugger has connected
06-24 23:45:43.887: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:44.087: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:44.338: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:44.544: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:44.773: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:44.983: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:45.183: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:45.393: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:45.594: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:45.805: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:46.004: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:46.214: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:46.414: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:46.627: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:46.833: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:47.034: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:47.254: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:47.466: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:47.663: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:47.873: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:48.073: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:48.283: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:48.483: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:48.684: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:48.894: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:49.094: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:49.295: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:49.504: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:49.714: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:49.915: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:50.123: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:50.323: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:50.524: I/System.out(11375): waiting for debugger to settle...
06-24 23:45:50.754: I/System.out(11375): debugger has settled (1426)
06-24 23:45:53.493: D/dalvikvm(11375): GC_EXTERNAL_ALLOC freed 721 objects / 53976 bytes in 321ms
06-24 23:48:29.164: D/AndroidRuntime(11375): Shutting down VM
06-24 23:48:29.164: W/dalvikvm(11375): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
06-24 23:48:29.423: E/AndroidRuntime(11375): FATAL EXCEPTION: main
06-24 23:48:29.423: E/AndroidRuntime(11375): java.lang.IllegalArgumentException: Illegal character in query at index 122: https://api.dropbox.com/1/account/info?oauth_consumer_key=2f2y1dyuqhp58ek&oauth_token=wz27t6thob0fbxl&oauth_nonce=6880853& oauth_timestamp=2012-06-24 23:46:51.734&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_signature=s8zaFHmQJ24BTxTYV4VUSLdV9d8=
06-24 23:48:29.423: E/AndroidRuntime(11375): at java.net.URI.create(URI.java:970)
06-24 23:48:29.423: E/AndroidRuntime(11375): at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
06-24 23:48:29.423: E/AndroidRuntime(11375): at cloud.mobile.DropboxApi.httpMethod(DropboxApi.java:67)
06-24 23:48:29.423: E/AndroidRuntime(11375): at cloud.mobile.MCActivity$3.onClick(MCActivity.java:161)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.view.View.performClick(View.java:2408)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.view.View$PerformClick.run(View.java:8816)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.os.Handler.handleCallback(Handler.java:587)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.os.Handler.dispatchMessage(Handler.java:92)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.os.Looper.loop(Looper.java:123)
06-24 23:48:29.423: E/AndroidRuntime(11375): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-24 23:48:29.423: E/AndroidRuntime(11375): at java.lang.reflect.Method.invokeNative(Native Method)
06-24 23:48:29.423: E/AndroidRuntime(11375): at java.lang.reflect.Method.invoke(Method.java:521)
06-24 23:48:29.423: E/AndroidRuntime(11375): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-24 23:48:29.423: E/AndroidRuntime(11375): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-24 23:48:29.423: E/AndroidRuntime(11375): at dalvik.system.NativeStart.main(Native Method)
最佳答案
这是因为您正试图在 UI 线程上执行网络访问。您应该永远不要在此线程上执行可能代价高昂的操作(网络访问、文件 I/O、远程数据库连接、数据库事务等),因为它可能会阻塞 UI 线程并阻止您的布局充气/响应触摸事件。您需要将 HTTP 请求包装在 AsyncTask
(推荐)或 Thread
中。
阅读我关于该主题的博文:
此外,url 中有一个空格(笑)...这就是为什么您会在字符 122 上收到 IllegalArgumentException
。从 中删除空格... 6880853& oauth_timestamp=2012 ...
我上面写的东西仍然适用。请,请,请不要在 UI 线程上执行此任务。
关于http post请求期间的Android :'Force Close'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180036/
我已经制作了一个用于报名参加 Activity 的小应用程序。用户输入他们的数据,然后单击“登录我”。 现在有时人们在数据库中是双倍的,完全相同的数据彼此之间很快被插入了两次。这只能表示某人单击了两次
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: PHP: “Notice: Undefined variable” and “Notice: Undefin
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: PHP: “Notice: Undefined variable” and “Notice: Undefin
我正在尝试将数据从 Textarea 发布到经典的 ASP 脚本,该脚本更新本地计算机上的 MS SQL,然后发布到另一台服务器上的 PHP 脚本。但是,执行以下操作不起作用,因为它会切断文本区域的数
无效的代码: login_form = page.form_with(:method => 'post') 和有效的代码: login_form = page.form_with(:method =>
我希望能够在 HTTP Post 请求被触发时拦截它,然后修改其请求正文(或参数),然后发送它。 这怎么可能用 jquery/js 实现。 谢谢 最佳答案 Jquery ajax beforeSend
我想编写一个 Mysql 语句,从表(发布)中选择所有内容,其中标题类似于 $title 除了 $title 的标题。基本上我想显示某个帖子的所有相关帖子。我希望查询选择表中标题或详细信息中具有标题名
我已经成功创建了一个简单的 HTML 表单,它将上传的文件发布到我的 Amazon S3 存储桶。我遵循了以下说明: http://aws.amazon.com/articles/1434 现在我正在
我正在实现一个 PayPal IPN 页面,并想检查以确保请求真正来自 PayPal 而不是被欺骗。我假设 HTTP_REFERRER 不是一个好的检查方式?我已经尝试过这种方法,但变量只是空的。 有
我有一个非常简单的设置有一个非常特殊的问题。 该设置部署了 nginx Web 服务器以提供一些静态页面。它还有一个用于处理 POST 请求的后端 uwsgi 守护进程。 我的nginx位置配置如下
我认为我做错了什么,或者误解了我在网上阅读的有关 POST 和 GET 请求的内容。我在 myNumber.ejs 上有一个提交表单。当我按下提交时,有 Add.ejs 的 View 。 Add.ej
我需要将数据从 Express 应用程序的前端发送到后端,然后使用需要显示该数据的 EJS 呈现页面。 问题是 app.post() 方法,随后 res.render() 函数似乎没有完全执行或者当我
根据AWS Documentation对于 CloudFormation cfn-hup 帮助程序脚本,cfn-hup Hook 可以具有“要检测的以逗号分隔的条件列表”。这些条件/触发器可以是 po
位于“wp-admin/includes/”的“post.php”文件中的 wordpress 函数“get_default_post_to_edit”无法正常工作。 当我加载页面时:wp-admin
我使用请求库发布数据,但在服务器上收到空主体,没有传递任何数据。我在代码中遗漏了什么吗? Map map = new Map(); map[csrfNameKey] = csrfName;
我正在尝试使用 siege 3.0.1 测试我的网站。但是好像siege不发送POST数据。这是我从网络浏览器收到的请求 POST / HTTP/1.0 Accept: text/html,appli
我正在尝试为 stockfigher 游戏 api 编写包装器,只是为了了解 feign 是如何工作的,而且我在第一个 POST 方法中遇到了问题: @RequestMapping(method =
如何使用 Jersey 获取原始 POST? @FormParam将不起作用,因为我发布的原始 JSON 不在任何特定的 POST 字段中。 最佳答案 Jersey 带有一个用于将 JSON 映射到
我正在尝试同时创建一个实体和两个子实体的实例。 如果我将以下 JSON 发布到/user_objects 资源,它会很高兴地创建父 user_object 实体和链接的 User_object_att
在 IPV6 中如何使用 IPV6 地址和端口号构建 CURL POST http 请求。任何类型的线程都将受到赞赏。 尝试构建如下请求 >curl --interface 'http://[2001
我是一名优秀的程序员,十分优秀!