JAVA http请求与 C#Http请求
public static int connectionTimeOut = 20000;
public static int readTimeOut = 60000;
public static String post(String url,NameValuePair[] data) throws Exception{
return post(url, data, null) ;
}
public static String post(String url,NameValuePair[] data,Header[] headers) throws Exception{
if(StringUtils.isEmpty(url)){
throw new Exception("The url is empty!") ;
}
HttpClient httpClient = getHttpClient(true) ;
HttpPost httpPost = new HttpPost(new URI(url.trim())) ;
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>() ;
for(NameValuePair d : data){
nameValuePairs.add(d) ;
}
try{
if(null != headers && 0 != headers.length){
httpPost.setHeaders(headers) ;
}
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs,HTTP.UTF_8)) ;
HttpResponse httpResponse = httpClient.execute(httpPost) ;
int respCode = httpResponse.getStatusLine().getStatusCode() ;
String respData = EntityUtils.toString(httpResponse.getEntity(), HTTP.UTF_8);
if(respCode != HttpStatus.SC_OK){
throw new Exception("Bad response status, " + respCode + "," + respData) ;
}
return respData ;
}finally{
httpClient.getConnectionManager().shutdown();
}
}
private static HttpClient getHttpClient(boolean useSSL){
HttpClient httpClient = useSSL ? getHttpsClient() : new DefaultHttpClient() ;
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, connectionTimeOut);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, readTimeOut);
return httpClient;
}
private static HttpClient getHttpsClient(){
HttpClient httpClient = new DefaultHttpClient() ;
SSLContext sslContext = null ;
try {
sslContext = SSLContext.getInstance("SSL") ;
sslContext.init(null, new TrustManager[]{trustManager}, null) ;
SSLSocketFactory sslSocketFactory = new SSLSocketFactory(sslContext, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager clientConnectionManager = httpClient.getConnectionManager();
SchemeRegistry schemeRegistry = clientConnectionManager.getSchemeRegistry();
schemeRegistry.register(new Scheme("https", 443, sslSocketFactory));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
return httpClient ;
}
private static X509TrustManager trustManager = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
这是我自己的C#http请求
ReadHTTPForPostUrl(queryUrl, data, "application/x-www-form-urlencoded",null);
private string ReadHTTPForPostUrl(string queryUrl, string data, string contentType, string[] hreaders)
{
if (!string.IsNullOrEmpty(queryUrl) && queryUrl.StartsWith("http//") ) queryUrl = queryUrl.Replace("http//","http://");
HttpWebRequest request = WebRequest.Create(queryUrl) as HttpWebRequest;
if (hreaders != null && hreaders.Length > 0)
{
request.Headers.Clear();
foreach (string h in hreaders)
{
string[] name_value = h.Split(":".ToCharArray());
if (name_value != null && name_value.Length == 2)
{
try
{
if ("accept".Equals(name_value[0].ToLower()))
{
request.Accept = name_value[1].Trim();
}
else if ("content-type".Equals(name_value[0].ToLower()))
{
request.ContentType = name_value[1].Trim();
}
else
{
request.Headers.Add(name_value[0], name_value[1].Trim());
}
}
catch (Exception ex)
{
Log.Info("name=" + name_value[0] + ";value=" + name_value[1].Trim());
Log.Error(ex.Message, ex);
}
}
}
}
if (data != null && data.Length > 0)
{
byte[] post_bytes = System.Text.Encoding.UTF8.GetBytes(data);
request.Method = "POST";
request.ContentType = contentType;
request.ContentLength = post_bytes.Length;
System.IO.Stream outStream = request.GetRequestStream();
outStream.Write(post_bytes, 0, post_bytes.Length);
outStream.Close();
}
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(response.GetResponseStream());
string _content = sr.ReadToEnd();
try
{
sr.Close();
if (request != null)
{
request.Abort();
request=null;
}
if (response != null)
{
response.Close();
response=null;
}
}
catch { }
return _content;
}我自己的请求总是请求失败,这两个请求是不是哪里不一样,比如说ContentType格式之类的。救救我吧,实在是找不到哪里有问题,java不是很懂
相关推荐
HTTP TLS1.2 HTTP2.0JAVA转换C#HTTP
H2 TLS1.2协议开发例子。最低net版本可以在2.0环境下,彻底解决了XP环境无法使用TLS1.2协议的情况
opensource:SendGrid开源仪表板
开源@ SendGrid 目的 最初,此存储库存在于Hacktoberfest2018。但是,我们认为拥有一个通用存储库来将我们的开源工作集中在一个地方会很棒。 我们还可以使用它来捕获不适合我们现有存储库之一的新想法。 我们的开源项目 REST库 SMTP库 PHP SMTP库 Python SMTP库 Ruby SMTP库 HTTP客户端 Python HTTP客户端 PHP HTTP客户端 C#HTTP客户端 Java HTTP客户端 Ruby HTTP客户端 转到HTTP客户端 Node.js HTTP客户端 标准品 OpenAPI规范 文档化 SendGrid知识中心 前端 SendGrid UI组件 电子邮件助手 电子邮件范本 WordPress插件 运作方式 DX自动器 DX手机 SendGrid CLI 克兰普斯 正义引擎 实用工具 开源数据收集器 我还可以
高校技术转移办公室人员在技术成果离校前,如何高效完成知识产权状态审核?.docx
高校技术转移办公室人员在技术成果离校前,如何高效完成知识产权状态审核?
论文复现基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)
内容概要:本文围绕“基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化”开展研究,通过Simulink仿真实现对全桥LLC谐振变换器在不同工作模式间切换时动态性能的优化。研究复现了IEEE相关文献中的先进控制策略,重点解决传统控制方式下模式切换过程中易出现的电压电流冲击、效率下降及软开关丢失等问题。通过融合变频控制(Frequency Modulation)与移相控制(Phase Shift Control)的协同机制,实现了宽范围内的软开关维持与平滑过渡,有效提升了系统在负载突变或输入波动时的动态响应能力。文中详述了控制逻辑的设计思路、仿真模型的构建过程以及关键波形的对比分析,充分验证了该协同策略在降低开关损耗、抑制瞬态冲击和增强系统稳定性方面的优越性。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事高性能电源设计的工程技术人员,尤其适合具备一定电路拓扑分析能力和Simulink/MATLAB仿真基础的学习者。; 使用场景及目标:①深入理解全桥LLC变换器在不同负载条件下的工作模态及其切换机理;②掌握变频与移相结合控制策略的设计方法,为高效率、高可靠性DC-DC变换器的研发提供关键技术支撑;③用于支撑高水平学术论文复现、科研课题攻关或工业级电源产品的控制算法验证与优化。; 阅读建议:建议读者结合提供的Simulink仿真模型进行同步操作,重点关注变频与移相控制的时序配合、模式切换逻辑及参数整定方法。通过对比传统单一控制与协同控制下的仿真结果,深入分析电压、电流及驱动信号的动态响应差异,从而掌握实现平滑切换的核心技术要点。同时可参考文中引用的LLC先进控制文献,进一步拓展对谐振变换器多模态控制的理解。
《CorelDRAW项目实践教程(第五版)》教学大纲+课件+教案
《CorelDRAW项目实践教程(第五版)》教学大纲+课件+教案


