http可以实现多种提交(同理restamplate也一样)
提供url 和 参数由httpclient模拟相应的提交
1,提交xml数据
2,提交form表单的数据
3,提交普通的json数据
1,
@Override
public ApiResponse send(FacadeSendRequest facadeSendRequest) throws Exception{
Assert.isTrue(!StringUtil.isBlank(facadeSendRequest.getTradeCode()), "转发地址异常!");
//根据交易编码获得三湘的接口调用方法名
urlEnum = UrlTransEnum.getEnumByCode(facadeSendRequest.getBankCode(),facadeSendRequest.getTradeCode());
if(urlEnum == null){
log.error("渠道:[{}]不支持此业务,请检查!交易码:[{}]",facadeSendRequest.getBankCode(),facadeSendRequest.getTradeCode());
throw new ParamException(CodeEnum.CODE_0027.getMsg()+"{"+facadeSendRequest.getTradeCode()+"}");
}
if (TradeEnum.S0017.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0018.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0019.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0020.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0021.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0022.getTcode().equals(facadeSendRequest.getTradeCode())
|| TradeEnum.S0023.getTcode().equals(facadeSendRequest.getTradeCode())) {//http form post send
JSONObject packetJson = JSONObject.parseObject(facadeSendRequest.getPacket());
facadeSendRequest.setFormData(packetJson);
return super.send(facadeSendRequest);
}else{//api send
return apiSend(facadeSendRequest);
}
}
2,
public String httpSend(FacadeSendRequest facadeSendRequest){
if(facadeSendRequest.getFile() != null)
return HttpClientUtil.uploadFile(facadeSendRequest.getUrl(), facadeSendRequest.getFileKey(),facadeSendRequest.getFile(),facadeSendRequest.getDatas());
if(!StringUtil.isBlank(facadeSendRequest.getXmlPacket()))
return HttpClientUtil.httpXmlPost(facadeSendRequest.getUrl(), facadeSendRequest.getXmlPacket(), facadeSendRequest.getEncoding());
if(!CollectionUtils.isEmpty(facadeSendRequest.getFormData()))
return HttpClientUtil.httpFormPost(facadeSendRequest.getUrl(), facadeSendRequest.getFormData());
return HttpClientUtil.httpJsonPost(facadeSendRequest.getUrl(), facadeSendRequest.getPacket());
}
工具类看附件
相关推荐
本文主要讨论如何使用HttpClient发送JSON格式和普通参数类型的POST请求。首先,我们来看一下所需的Maven依赖。 ```xml <groupId>commons-httpclient <artifactId>commons-httpclient <version>3.1 <groupId>...
根据实际需求,可能需要解析JSON、XML或其他格式的数据。 7. **错误处理**: 在实际应用中,必须考虑请求失败的情况,例如网络问题、服务器错误等。可以检查`HttpResponseMessage.IsSuccessStatusCode`属性来判断...
HttpClient允许你模拟浏览器行为,发送GET、POST以及其他HTTP方法的请求,并处理服务器返回的各种内容,包括HTML、XML、JSON等。在本文中,我们将深入探讨HttpClient的基本用法,以及如何使用它来抓取网页内容。 ...
例如,添加`Content-Type`头来指定发送的数据类型(如`application/json`或`application/x-www-form-urlencoded`),或者设置`Authorization`头进行身份验证。 3. **POST请求数据**:在POST请求中,数据通常以字符...
此外,对于POST请求,我们可能需要设置合适的Content-Type头部,如`application/x-www-form-urlencoded`、`multipart/form-data`或`application/json`,以匹配服务器期望的数据格式。 总的来说,Titanium的...
如果需要更复杂的处理,例如解析JSON或XML,可以使用诸如Gson或Jackson这样的库来处理响应实体。 总结一下,HttpClient工具类为我们提供了一种简洁的方式去发送HTTP请求。通过它可以方便地执行GET、POST请求,并对...
在Android开发中,POST请求通常用于向服务器发送复杂的数据结构,比如JSON或XML格式的数据。以下是实现POST请求的一般步骤: 1. **构建请求体**:你需要将要发送的数据转换成字符串或者字节数组。这通常涉及对Java...
首先,我们需要创建一个HttpWebRequest对象,并设置其Method属性为"POST",ContentType属性为"application/x-www-form-urlencoded"。然后,我们需要将Json数据字符串参数转换为键值对的形式,并将其Url编码。最后,...
响应内容可以是文本、JSON、XML等,根据网页服务器的设定。 4. **解析反馈数据** 获取到服务器返回的数据后,根据数据类型进行解析。如果是JSON,可以使用`Newtonsoft.Json`库的`JsonConvert.DeserializeObject`...
无刷新提交表单的核心是利用Ajax(异步JavaScript和XML)技术。Ajax允许我们在后台与服务器交换数据并局部更新页面,而无需重新加载整个页面。这种技术依赖于浏览器提供的XMLHttpRequest对象或者现代浏览器的Fetch ...
在上面的示例中,`payload`变量应替换为实际的XML或JSON数据。 3. **处理响应** 获取HTTP响应码后,你可以读取响应体。如果是XML,可以使用`javax.xml.parsers.DocumentBuilderFactory`解析;如果是JSON,使用相应...
这个类可能封装了HTTP请求/响应的处理,如使用`HttpClient`类发送GET或POST请求,以及解析JSON或XML数据。 实现WinForm与Web的直接交互通常涉及以下几个步骤: 1. **建立网络连接**:使用C#内置的`System.Net....
- 使用HttpClient:如果你不希望添加Web引用,也可以直接使用HttpClient发送POST请求,处理返回的XML或JSON数据。 ```csharp using (var client = new HttpClient()) { var content = new StringContent($...
5. **处理响应**:解析响应数据,可能是HTML文本、JSON、XML等,然后可能在界面上显示出来,或者进行进一步的解析和操作。 6. **错误处理**:考虑网络问题、无效URL、服务器错误等情况,程序应具备一定的错误处理...
在C#中,可以使用HttpClient类的`PostAsync`方法发送请求,然后解析响应的JSON数据。 5. **构建消息推送** 微信企业号支持多种消息类型,如文本、图文、语音等。你需要根据需求选择合适的消息类型,并构造对应的...
2. **XML或JSON解析**:服务器返回的更新信息通常是以XML或JSON格式的数据,VB可以使用内置的DOM解析器或者第三方库(如JSON.NET)来解析这些数据,提取出需要的信息。 3. **文件下载管理**:一旦检测到有新的更新...
`responseContent`变量现在包含了服务器的响应内容,你可以根据需要解析这个字符串,例如JSON或XML。 在实际项目中,可能还需要处理异常,关闭`HttpClient`实例等。`HttpClient`不应该被频繁创建和销毁,通常建议...
除了基本的POST请求,还可以使用HttpClient实现文件上传、JSON数据传输等功能。例如,如果要发送JSON数据,可以设置`Content-Type`为`application/json`,并使用`StringEntity`代替`UrlEncodedFormEntity`。 在实际...
这时,我们需要处理服务器的响应,可能包括解析JSON或XML格式的响应数据,根据返回状态码判断请求是否成功,并根据需要更新UI。 总结来说,使用Java和Android进行HTTP POST提交数据涉及以下步骤: 1. 创建HTTP连接...