大家看看,使用HttpURlConnnection老是报400,这是怎么回事呢

小哈的秘密城堡 小哈的秘密城堡 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个项目用HttpClient请求就没有问题,一换HttpUrlConnection就报400,先贴HttpClient的代码

分全给了。只要能解决。
public String connectionOnline(String[] parameter, Object[] parameterValue,
String method,Context context) {
String result = "";
DefaultHttpClient client = null;
try {
String url = “http://ip:端口/AsyncTask.svc” //这里用的是C#的服务端
//DBOpenHelper db = new DBOpenHelper(context);
//String url=db.Address().toString();
HttpPost req = new HttpPost(url + "/" + method);
req.setHeader("Accept", "application/json");
req.setHeader("Content-type", "application/json");
// 设置连接参数

BasicHttpParams connParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(connParams, 20 * 1000);
HttpConnectionParams.setSoTimeout(connParams, 20 * 1000);

JSONObject o = new JSONObject();
for (int i = 0; i < parameter.length; i++) {
o.put(parameter[i], parameterValue[i]);
}

StringEntity s = new StringEntity(o.toString(), "utf-8");
req.setEntity(s);

// 构建执行请求客户端实例
client = new DefaultHttpClient(connParams);

// 发送请求,接收响应
HttpResponse resp = client.execute(req);
int g = resp.getStatusLine().getStatusCode();
// 判断响应码是否为200
if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 获取响应数据实体类
HttpEntity respEntity = resp.getEntity();
result = EntityUtils.toString(respEntity, "utf-8");
}

} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接
client.getConnectionManager().shutdown();

}
Log.i("a", result);
return result;

}

下面在贴贴我写的HttpUrlConnection
public String connectionResult(String[] parameter,Object[] parameterValue,
String method,Context context){
HttpURLConnection conn = null;
PrintWriter printWriter = null;
BufferedReader bufferedReader = null;
StringBuffer responseResult = new StringBuffer();
StringBuffer params = new StringBuffer();
String myparams="";
try {
String myurl = “http://ip:端口/AsyncTask.svc” //这里用的是C#的服务端
String newUrl = myurl + method;
URL url = new URL(newUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");// 提交模式
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(false);
// 设置通用的请求属性
conn.setRequestProperty("accept", "application/json");
conn.setRequestProperty("connection", "Keep-Alive");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();

DataOutputStream out = new DataOutputStream(conn.getOutputStream());

if(parameter.length > 0){
for(int i=0;i<parameter.length;i++){
params.append(parameter[i]+"="+URLEncoder.encode(parameterValue[i].toString(), "utf-8")+"&");
}
if(params.lastIndexOf("&")>0){
myparams = params.substring(0,params.length()-1);
}
}
out.writeBytes(myparams.toString());
out.flush();
out.close();

// 根据ResponseCode判断连接是否成功
int responseCode = conn.getResponseCode();
if (responseCode != 200) {
System.out.println("Not Success");
} else {
System.out.println("Success");
}
// 定义BufferedReader输入流来读取URL的ResponseData
bufferedReader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
responseResult.append(line);
System.out.println(line);
}
/* 关闭DataOutputStream */
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
conn.disconnect();
try {
if (printWriter != null) {
printWriter.close();
}
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return responseResult.toString();
}

下面是错误类型:

求各位美女帅哥们看看。拜托了
...全文

相关推荐

CISP-CSE注册云安全工程师备考资源包基础教程

随着云计算技术的普及,云安全已成为网络安全领域的核心议题。CISP-CSE(注册云安全工程师)认证由中国信息安全测评中心颁发,旨在培养具备云安全专业知识和实践能力的实战型人才。本教程将结合"CISP-CSE注册云安全工程师备考资源包",系统性地为您梳理云安全的核心知识体系,并提供实战案例分析,助您高效备考。

t0_54coder

绘图模拟:在冲动环境中固定时间的示例 附matlab代码.rar

绘图模拟:在冲动环境中固定时间的示例 附matlab代码.rar

天天Matlab科研工作室

基于规则的电动汽车混合能源管理系统,采用MATLAB、Simulink、Simscape Electrical和Stateflow。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)

内容概要:本文围绕虚拟同步发电机(VSG)的自适应惯量阻尼控制展开深入研究,通过Simulink搭建详细的系统仿真模型,并结合Matlab代码实现控制算法,系统分析了根轨迹特性及不同调节系数对系统动态响应的影响。研究重点在于设计并验证一种能够根据电网频率变化自动调整惯量和阻尼参数的自适应控制策略,有效提升了VSG在面对负载突变或新能源波动时的频率稳定性与抗干扰能力,为高比例可再生能源接入下的电力系统稳定运行提供了关键技术支撑。; 适合人群:具备电力系统分析、自动控制理论及新能源并网技术基础的研究生、科研人员以及从事微电网、分布式能源系统设计与运维的工程技术人员。; 使用场景及目标:①深入理解虚拟同步发电机的工作原理及其在提升电网惯性方面的关键作用;②掌握基于Simulink的电力电子与控制系统建模与仿真方法;③学习并实践惯量和阻尼自适应控制策略的设计流程,通过根轨迹分析手段优化控制器参数,提升系统动态性能。; 阅读建议:建议读者结合所提供的Simulink仿真模型与Matlab代码进行同步操作,重点关注控制器设计逻辑与参数整定过程,通过改变调节系数观察系统响应变化,深化对稳定性判据与控制性能之间关系的理解。

冒泡芳

【雷达信号处理】数字下变频(DDC)(Matlab代码实现)

【雷达信号处理】数字下变频(DDC)(Matlab代码实现)内容概要:本文主要介绍了数字下变频(DDC)技术在雷达信号处理中的应用,并提供了基于Matlab的代码实现。DDC作为现代雷达系统中的关键环节,主要用于将高频接收信号转换为便于后续处理的低频或基带信号,从而提高信号处理效率与精度。文中详细阐述了DDC的基本原理,包括混频、低通滤波和抽取等步骤,并通过Matlab代码展示了其实现过程,帮助读者理解如何在实际工程中构建和调试DDC模块。此外,文档还提及该资源属于一个涵盖多个科研方向的技术资料集合,如路径规划、电力系统优化、机器学习、通信系统仿真等,强调借助成熟工具与方法可提升科研效率。 适合人群:具备一定信号处理基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适用于从事雷达系统设计、通信工程或相关领域研究的人员。 使用场景及目标:① 学习和掌握数字下变频(DDC)在雷达信号处理中的基本原理与实现方法;② 利用Matlab进行算法仿真与验证,辅助完成课程设计、毕业课题或科研项目中的信号处理部分;③ 借助提供的代码框架拓展至其他通信或雷达系统仿真任务中。 阅读建议:此资源以Matlab代码为核心载体,注重理论与实践结合,建议读者在学习过程中同步运行代码并调整参数,观察不同设置对下变频结果的影响,加深对混频泄漏、滤波器设计和采样率变化等问题的理解,从而真正掌握DDC的关键技术细节。

程序猿鑫
评论 2
收藏 已收藏
分享
返回顶部
小哈的秘密城堡
Android 80,490 成员 91,375 内容