安卓http长链接请求(设置 Keep-Alive)

public static HttpURLConnection initHttp(String url) {
    try {
        HttpURLConnection conn = (HttpURLConnection) (new URL(url)).openConnection();
        conn.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Connection", "Keep-Alive");
        return conn;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
/**
 * 发送参数
 *
 * @param cnn
 * @param content
 */
public static void sendData(final HttpURLConnection cnn, final String content) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                DataOutputStream dataOutputStream = new DataOutputStream(cnn.getOutputStream());
                dataOutputStream.writeBytes(content);
                dataOutputStream.flush();

                InputStream is = cnn.getInputStream();
                byte[] buffer = new byte[1024];

                int len = 0;
                int temp = 0;
                while ((temp = is.read()) != -1) {
                    buffer[len] = (byte) temp;
                    len++;
                }
                String return_content = new String(buffer, 0, len);//服务器端返回值,只在返回数据为1024个字节内有效
                Log.e("--saveData--", return_content);
                dataOutputStream.close();
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }).start();
}

 

//处理要发送的参数
private String dealData(String para) {
    String jsonHead = "";
    Map<String, Object> mapHead = new HashMap<>();
    mapHead.put(key, value);
    jsonHead = buildRequestParams(mapHead);
    Log.e("TAG", "sendData: " + jsonHead);
    return jsonHead;
}


public static String buildRequestParams(Object params) {
    Gson gson = new Gson();
    String jsonStr = gson.toJson(params);
    return jsonStr;
}

 

在JSP后端无法接收到前端提交的数据时,可以按照以下几个步骤进行排查: 1. **检查HTML表单**:确保前端的表单元素(如`<form>`、`<input>`等)有正确的属性设置,比如`method="post"`用于POST请求,`action`指向后端处理的JSP文件,并包含`name`属性的表单字段对应后台期望接收的数据。 ```html <form action="your-backend-jsp.jsp" method="post"> <input type="text" name="username"> <!-- 更多输入项 --> </form> ``` 2. **验证URL和路径**:确认后端JSP的URL是否正确,以及是否与web应用服务器(如Tomcat)的部署配置一致。 3. **查看HTTP请求头和请求体**:使用浏览器开发者工具查看发送到后端的请求,检查请求方法(GET还是POST)、Content-Type(通常应该是`application/x-www-form-urlencoded`或`multipart/form-data`),确保数据已经被正确编码并附在了请求体中。 4. **检查后端接收代码**:在JSP的后端控制逻辑中,确认是否有正确获取和解析请求参数的地方。如果使用的是EL表达式或者Servlet API(`HttpServletRequest.getParameter()`),检查语法和变量名是否匹配。 5. **错误日志分析**:查看服务器和应用的日志文件,看看是否有异常信息帮助定位问题,如`NullPointerException`等可能是因为参数未找到。 6. **调试**:如果条件允许,可以在关键点添加日志打印,逐步跟踪数据传递的过程,发现问题所在。 7. **测试其他功能**:尝试发送一些已知的数据,看看是否能正常工作,以便缩小问题范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值