相关疑难解决方法(0)

如何在Java中为Android设置HttpResponse超时

我创建了以下用于检查连接状态的函数:

private void checkConnectionStatus() {
    HttpClient httpClient = new DefaultHttpClient();

    try {
      String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/"
                   + strSessionString + "/ConnectionStatus";
      Log.d("phobos", "performing get " + url);
      HttpGet method = new HttpGet(new URI(url));
      HttpResponse response = httpClient.execute(method);

      if (response != null) {
        String result = getResponse(response.getEntity());
        ...
Run Code Online (Sandbox Code Playgroud)

当我关闭服务器进行测试时,执行会等待很长时间

HttpResponse response = httpClient.execute(method);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何设置超时以避免等待太久?

谢谢!

java android timeout httpresponse

332
推荐指数
5
解决办法
19万
查看次数

commons httpclient - 将查询字符串参数添加到GET/POST请求

我正在使用公共HttpClient对Spring servlet进行http调用.我需要在查询字符串中添加一些参数.所以我做了以下事情:

HttpRequestBase request = new HttpGet(url);
HttpParams params = new BasicHttpParams();
params.setParameter("key1", "value1");
params.setParameter("key2", "value2");
params.setParameter("key3", "value3");
request.setParams(params);
HttpClient httpClient = new DefaultHttpClient();
httpClient.execute(request);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用servlet读取参数时

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("key");
Run Code Online (Sandbox Code Playgroud)

它返回null.实际上parameterMap是完全空的.当我在创建HttpGet请求之前手动将参数附加到url时,参数在servlet中可用.当我使用附加了queryString的URL从浏览器中访问servlet时也是如此.

这里的错误是什么?在httpclient 3.x中,GetMethod有一个setQueryString()方法来追加查询字符串.4.x中的等价物是什么?

java apache-httpclient-4.x

70
推荐指数
4
解决办法
13万
查看次数

内部服务器错误

我正在开发短信发送应用程序,并且出于登录目的,我想使用POST方法从我的Android应用程序向网络服务器发送用户名和密码.

当我点击lo-gin按钮时,应用程序没有响应,并且控制台打印以下消息以响应Post请求.

HTTP/1.1 500内部服务器错误

虽然我的应用程序运行良好的GET方法.

我无法弄清楚为什么会造成这种情况......

整个代码在这里:

package com.vikas.httplogin;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class HttpLogin extends Activity {
    TextView tv;

    private static final String tag ="FATAL_ERROR";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
        connecttoServer();
    }

    private void connecttoServer()
    { …
Run Code Online (Sandbox Code Playgroud)

java android http internal-server-error

5
推荐指数
1
解决办法
1万
查看次数