import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
/**
* @ClassName HttpClientUtil
* @Description: TODO
* @Author wzq
* @Date 2019/12/9
* @Version V1.0
**/
public class HttpClientUtil {
public static String getPostResponse(String url, Map<String, String> parmMap) throws IOException {
String result = "";
PostMethod post = new PostMethod(url);
HttpClient client = new HttpClient();
Iterator it = parmMap.entrySet().iterator();
NameValuePair[] param = new NameValuePair[parmMap.size()];
int i = 0;
while (it.hasNext()) {
Map.Entry parmEntry = (Map.Entry) it.next();
param[i++] = new NameValuePair((String) parmEntry.getKey(), (String) parmEntry.getValue());
}
post.setRequestBody(param);
try {
int statusCode = client.executeMethod(post);
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
Header locationHeader = post.getResponseHeader("location");
String location = "";
if (locationHeader != null) {
location = locationHeader.getValue();
result = getPostResponse(location, parmMap);//用跳转后的页面重新请求�??
}
} else if (statusCode == HttpStatus.SC_OK) {
result = post.getResponseBodyAsString();
}
} catch (
IOException ex) {
} finally {
post.releaseConnection();
}
return result;
}
}
http 解决post请求重定向的问题
最新推荐文章于 2021-07-27 19:17:37 发布
本文介绍了一个使用Apache HttpClient库实现的Java类,用于发送POST请求并处理重定向。该类能够接收URL和参数映射,自动处理301和302重定向,返回服务器响应的字符串结果。
2921

被折叠的 条评论
为什么被折叠?



