作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用Android API,使用http POST方法发送一些数据:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://myapp.com/");
try {
List parameters = prepareHttpParameters();
HttpEntity entity = new UrlEncodedFormEntity(parameters);
httppost.setEntity(entity);
ResponseHandler responseHandler = new BasicResponseHandler();
response = httpclient.execute(httppost, responseHandler);
Toast.makeText(this, response, Toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO: manage ClientProtocolException and IOException
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
我的参数在这里准备:
List parameters = new ArrayList(2);
parameters.add(new BasicNameValuePair("usr", "foo" ));
parameters.add(new BasicNameValuePair("pwd", "bar" ));
return parameters;
但这似乎是错误的,因为我没有得到任何预期的响应。
我使用 Curl 测试了具有相同参数的相同请求,并得到了预期的响应。
我的代码有问题吗?
非常感谢
最佳答案
我会考虑将编码作为第二个参数的 UrlEncodedFormEntity
构造函数。否则,即兴的,这看起来不错。您可以检查服务器日志您收到的这些请求的内容。如果您正在使用模拟器,您还可以确保您的模拟器具有互联网连接(即有两个信号强度栏)。
以下是示例应用程序的相关部分,该应用程序使用 HTTP POST(和自定义 header )更新 identi.ca 上的用户状态:
private String getCredentials() {
String u=user.getText().toString();
String p=password.getText().toString();
return(Base64.encodeBytes((u+":"+p).getBytes()));
}
private void updateStatus() {
try {
String s=status.getText().toString();
HttpPost post=new HttpPost("https://identi.ca/api/statuses/update.json");
post.addHeader("Authorization",
"Basic "+getCredentials());
List<NameValuePair> form=new ArrayList<NameValuePair>();
form.add(new BasicNameValuePair("status", s));
post.setEntity(new UrlEncodedFormEntity(form, HTTP.UTF_8));
ResponseHandler<String> responseHandler=new BasicResponseHandler();
String responseBody=client.execute(post, responseHandler);
JSONObject response=new JSONObject(responseBody);
}
catch (Throwable t) {
Log.e("Patchy", "Exception in updateStatus()", t);
goBlooey(t);
}
}
关于java - 如何在 Android 中发帖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4745225/
我是一名优秀的程序员,十分优秀!