Apache提供HttpPost

package com.bgxt.httpUtils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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;

public class httpClientUtils implements Runnable {
    /**
     * 对于Android4.0之上的环境下,不能在主线程中访问网络 所以这里另新建了一个实现了Runnable接口的Http访问类
     */
    private String username;
    private String password;

    public httpClientUtils(String username, String password) {
        // 初始化用户名和密码
        this.username = username;
        this.password = password;
    }

    @Override
    public void run() {
        // 设置访问的Web站点
        String path = "http://192.168.1.103:1231/loginas.ashx";
        // 设置Http请求参数
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", username);
        params.put("password", password);

        String result = sendHttpClientPost(path, params, "utf-8");
        // 把返回的接口输出
        System.out.println(result);
    }

    /**
     * 发送Http请求到Web站点
     * 
     * @param path
     *            Web站点请求地址
     * @param map
     *            Http请求参数
     * @param encode
     *            编码格式
     * @return Web站点响应的字符串
     */
    private String sendHttpClientPost(String path, Map<String, String> map,
            String encode) {
        List<NameValuePair> list = new ArrayList<NameValuePair>();
        if (map != null && !map.isEmpty()) {
            for (Map.Entry<String, String> entry : map.entrySet()) {
                // 解析Map传递的参数,使用一个键值对对象BasicNameValuePair保存。
                list.add(new BasicNameValuePair(entry.getKey(), entry
                        .getValue()));
            }
        }
        try {
            // 实现将请求 的参数封装封装到HttpEntity中。
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, encode);
            // 使用HttpPost请求方式
            HttpPost httpPost = new HttpPost(path);
            // 设置请求参数到Form中。
            httpPost.setEntity(entity);
            // 实例化一个默认的Http客户端
            DefaultHttpClient client = new DefaultHttpClient();
            // 执行请求,并获得响应数据
            HttpResponse httpResponse = client.execute(httpPost);
            // 判断是否请求成功,为200时表示成功,其他均问有问题。
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                // 通过HttpEntity获得响应流
                InputStream inputStream = httpResponse.getEntity().getContent();
                return changeInputStream(inputStream, encode);
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }

    /**
     * 把Web站点返回的响应流转换为字符串格式
     * 
     * @param inputStream
     *            响应流
     * @param encode
     *            编码格式
     * @return 转换后的字符串
     */
    private String changeInputStream(InputStream inputStream, String encode) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] data = new byte[1024];
        int len = 0;
        String result = "";
        if (inputStream != null) {
            try {
                while ((len = inputStream.read(data)) != -1) {
                    outputStream.write(data, 0, len);
                }
                result = new String(outputStream.toByteArray(), encode);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

}

 

使用Apache HttpClient发起一个POST HTTP请求 Apache HttpClient 是一个强大的Java库,用于处理HTTP请求。它支持多种HTTP方法,包括GET、POST、PUT、DELETE等。本教程将重点介绍如何使用Apache HttpClient发送POST HTTP请求。POST请求通常用于向服务器发送数据以创建或更新资源。我们将演示如何发送带有JSON数据的POST请求,并处理响应。 阅读详情

相关推荐

使用Apache HttpClient访问JSP发送GET和POST请求

本示例说明了如何使用Apache HttpClient发送GET和POST请求,以及如何发送表单数据,详见代码及说明。对于ASP.NET的网站请求,可以查看使用Apache HttpClient访问ASP.NET发送GET和POST请求   说明: 1、发送表单POST请求时,需要借助HttpWatch或有这种功能的小工具来查看发给服务器的参数有哪些; 2、对于POST请求的表单数据,需要...

ZYWANG--技术备忘录 832

使用Apache提供的HttpClient对象调用HTTP接口(基于POST请求)

本篇将主要介绍如何使用HttpClient4.5版本调用接口的实例.(实现代码中有大量注释供理解所用) 先准备好一个Springboot项目,方便自己编写接口与后台直接main方法调用. Springboot工程结构展示: 准备好后,第一步引入Apache提供的HttpClient4.5版本的依赖包. 依赖如下: <dependency> <groupId>org.apache.httpcomponents</groupId> <ar

ShangHai0123的博客 3924

处理HttpPost连接超时的方法

在本文中,我将介绍一些处理HttpPost连接超时的方法,并提供相应的源代码示例。通过设置连接超时时间、读取超时时间和使用连接池,我们可以有效地处理HttpPost连接超时的情况。设置适当的超时时间可以控制请求的等待时间,避免长时间的阻塞。在使用HttpPost发送请求之前,可以通过设置连接超时时间来控制请求的最大等待时间。需要注意的是,在实际使用中,超时时间的设置应该根据具体的需求和网络状况进行调整。过短的超时时间可能导致请求频繁超时,而过长的超时时间可能会降低系统的响应速度。如有任何疑问,请随时提问。

DevGOOD的博客 1914

使用 Apache 工具类 HttpClients 进行 GET、POST请求

使用 Apache 工具类 HttpClients 进行 GET、POST请求 一、概述 在Java中进行 HTTP 请求是一种常见的编程需求,尤其是在调用第三方API的时候。因此,了解 HTTP 协议的原理、熟悉Apache工具类对此协议的实现至关重要。 HT...

IT之旅 的博客 4336

WOL唤醒配置(以太网、PHY、MAC)

MAC 就是以太网控制器,属于OSI的数字链路层。phy 属于OSI的物理层(Physical layer),所以叫phy。CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。

qq_58264156的博客 8635

告别SquareLine!用免费的NXP GUI-Guider为海思3516AV300开发LVGL界面(附完整移植流程)

本文详细介绍了如何利用免费的NXP GUI-Guider工具为海思Hi3516AV300开发LVGL界面,包括环境配置、代码移植和性能优化等全流程实战指南。特别针对二维码组件缺失等常见问题提供解决方案,帮助开发者零成本构建高效嵌入式GUI系统。

weixin_28292761的博客 417

android网络编程——HttpGet、HttpPost比较

在Android SDK中提供了Apache HttpClient(org.apache.http.*)模块。在这个模块中涉及到两个重要的类:HttpGet和HttpPost,他们有共性也有不同。 HttpGet和HttpPost创建方式相同: 1、创建HttpGet(或HttpPost)对象,将要请求的URL通过构造方法传入HttpGet(或HttpPost)对象中; 2、...

xyzlmn的专栏 106

EDA课程实验:《数字逻辑电路》实验四___基于Minisys 平台 VIVADO工具与Verilog语言

(4)使用 Verilog HDL 实现一个分频器 clock_div,输入的是系统提供的 100MHz 频率,输出的是 1Hz 频率,占空比是 1:2,(实际上可以用一个加 1 计数器来实现降频,输入的是一个 100MHz 频率的方波,对这 个方波计数 1 亿次刚好到 1 秒(1Hz),题目要求输出频率占空比是 1:2,也就是这个 1Hz 的 方波高电平和低电平各 500ms,可以采用计数到中间值的时候输出电平翻转。(1)1) 拨动 SW1~0 为 01,按下 P4 按钮,GLD1~0 为 01;

ssjy_的博客 1298

Android通过Apache HTTP访问HTTP资源

HttpClient接口 实现类:DefaultHttpClient这也是常用的一个用于实现HttpClient接口的子类, HttpClietnt中定义的常用抽象方法 方法名称 描述 public abstract HttpResponse execute (HttpUriRequest request) 通过H

likika2012的专栏 819

python sci sci-hub 爬论文

sci-hub 爬虫 后续加入对于时间的排序,下载最新文献 参考: https://www.guanjihuan.com/archives/6846 https://blog.youkuaiyun.com/czh2637750821/article/details/115508922

weixin_42783619的博客 3542

【AI Agent 记忆共享实战】【下篇】多 Agent 会话 Session 统一共享实战:全链路工程落地、采集归一、MCP 服务、私有化部署、源码级实战

中篇我们已经锁定最终最优架构方案: 非侵入式、外部旁路采集、只读归一、中心化存储、MCP 按需检索注入。摒弃「改 Agent 源码」「软链接互通」「原生 Session 互导」等不现实方案。本篇直接落地可上线、可简历复用、可个人私有化部署多 Agent 异构 Session专属采集器(Claude/CODex/DSH/OpenCode/Kimi/WorkBuddy/ 豆包)统一消息归一化解析层(解决所有 Schema 异构)增量同步、去重、时间戳对齐核心逻辑。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 484

HTTPClient模块的HttpGet和HttpPost

AndroidSDK集成了ApacheHttpClient模块。要注意的是,这里的ApacheHttpClient模块是HttpClient4.0(org.apache.http.*),而不是常见的JakartaCommonsHttpClient3.x(org.apache.commons.httpclient.*)。 HttpClient常用HttpGet和HttpPost这两个类,...

东天里的冬天 322

Python+OpenCV实现车牌检测与识别

使用Python+OpenCv实现车牌检测与识别,算法思想来自于网上资源,先使用图像边缘和车牌颜色定位车牌,再识别字符。车牌定位在预测方法中,为说明清楚,完成代码和测试后,加了很多注释,请参看源码。车牌字符识别也在预测方法中,请参看源码中的注释,需要说明的是,车牌字符识别使用的算法是OpenCv的SVM,OpenCv的SVM使用代码来自于OpenCv附带的样本。由于训练样本有限,你测试时会发现,车...

不脱发的程序猿 1万+

1 - Apache HttpClient 简单使用

Apache HttpClient 是Apache 开源的实现Http协议的java开源库。 HttpClien 是客户端的HTTP通信实现库,实现HTTP GET 和POST请求,获取响应内容。 Apache网站:http://hc.apache.org/index.html Apache HttpClient jar 包 httpclient.jar http...

adam0328的博客 192

【Android面试八股文】Android Application为什么是单例?

这道题相对简单,就是考察大家是否了解application的创建流程。的实例,它用来存储和处理整个全局变量的一些事情,它同时还是一个。为空的时候,才会创建,从而保证了它是一个单例对象。一样有自己的生命周期,但是它并没有那么复杂,因为。对象的创建过程,找出它为什么是单例的原因。全局进行一些配置,比如配置插件。的时候才会创建,所以说可以在。凭什么是单例,我们查看下。启动的时候都会创建一个。是怎么一步步创建的。是一个单例,即每一个。

字节卷动 532

实现端到端加密的WebRTC视频会议终端

需要注意的是,上述示例代码中没有涉及到具体的加密算法和密钥交换过程,而是通过WebRTC API自动处理了加密和密钥交换的细节。然后,我们通过信令服务器将本地SDP发送给对方,并接收对方的SDP。最后,我们将对方的SDP设置为远程描述,并将最终的连接建立起来。最后,我们将对方的SDP设置为远程描述,并建立最终的连接。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。在本文中,我们将探讨如何使用WebRTC构建一个加密的视频会议终端,并提供相应的源代码。

WaJulia的博客 434

HttpClient与httpComponents、HttpPost、HttpGet

jdk自带的url与urlconnection之类的连接网络获取资源的方式在实际的项目中还是有许多的瓶颈,这里就介绍了下apach下的一个子项目HttpClient。         认识HttpClient之前先看看HttpComponents组件 1,httpComponents组件结构 HttpComponents Core     简称HttpCore, 是一组

hll174 3515

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HTTP网络请求Apache方式的简单封装

下面是对apche方式的网络请求进行的一个简单封装 主要用到的类: HttpClient client = new DefaultHttpClient(); HttpGet/HttpPost---父类 HttpUriRequest HttpResponse 工具类EntityUtils.toString(response.getEntity);获取服务器响应内容 post传数据: B

lei的博客 496

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Apache HttpClient(20)

Apache HttpClientApache HttpClient简易架构图Apache HttpClient 特性Apache HttpClient 使用流程Apache HttpClient 使用实例POM创建 HttpGet 请求创建 HttpPost 请求 Apache HttpClient 简易架构图 Apache HttpClient介绍 HttpClient 是 Apache J...

weixin_44684812的博客 364

HttpGet.abort()/ HttpPost.abort()并不总是立即中止

地址:https://stackoverflow.com/questions/12014673/httpget-abort-httppost-abort-doesnt-always-abort-immediately I’m using Apache HttpComponents 4.2.1 and I’m having trouble getting HttpGet.abort() and H...

香槟的博客 4893

HTTPClient模块的HttpGet和HttpPost(处理http请求响应)

Android SDK集成了Apache HttpClient模块。要注意的是,这里的Apache HttpClient模块是HttpClient 4.0(org.apache.http.*),而不是常见的Jakarta Commons HttpClient 3.x(org.apache.commons.httpclient.*)。            HttpClient常用HttpGet和

始于足下 818

Android - HTTPClient模块的HttpGet和HttpPost

说明: 目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用JQuery post进行请求。 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而JQuery的post请求是不允许跨域的。 这时,就只能够用HttpClient包进行请求了,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClie

Beluga_白鲸 695

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/client/methods/HttpPost

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/client/methods/HttpPost Caused by: java.lang.ClassNotFoundException: Didn’t find class “org.apache.http.client.methods.HttpPost”. 在高版本的Android 设备上(Android 9.0),http.client相关类不再用了,为了解决这个

吴延宝 1212
上一篇: JavaWeb过滤器.监听器.拦截器-原理&区别-个人总结(转)
下一篇: Java中使用HTTP之Post方式
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值