`
mayEyeInfo
  • 浏览: 4972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java HttpConnection 调用.NET WebService

 
阅读更多

最近项目上要求调用异地的WebService,以前有写过xfire WebService,就按照原先的写了,发现掉不同,后来发现对面写的WebServcie是使用.NET语言写的,且传输的是对象,愁了三天,相继使用了XFIRE,以及CXF,AXIS调用,都不行,各种错误。后来就想使用基础的,java自带的HttpConnection提交其XML数据,后来开始也是掉不同,出现错误如下:

java.io.IOException: Server returned HTTP response code: 500 for URL:
 

 

 后来从网上找原因都说是要求增加如下代码:

connectioin.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

试了不行,后来辗转多地,找到如下方法,试了,可以

 

con.setRequestProperty("SOAPAction", "相应的soapaction");、
源代码如下:
/**
	 * 以post的方式模拟HTTP
	 * @param urlStr
	 * @param paras
	 * @return
	 */
	public String httpPost(String urlStr, String paras) {
		byte[] data = paras.getBytes();
		URL url = null;
		HttpURLConnection con = null;
		InputStream input = null;
		String response = null;
		try {
			url = new URL(urlStr);
			con = (HttpURLConnection)url.openConnection();
			con.setConnectTimeout(1000 * 6);
			//Server returned HTTP response code: 500 for URL:错误解决方案
			con.setRequestProperty("SOAPAction", "http://tempuri.org/IInsureBill/Submit");
			
			con.setDoInput(true);
			con.setDoOutput(true);
			//如果为 true,则只要有条件就允许协议使用缓存
			con.setUseCaches(false);
			con.setRequestMethod("POST");
			con.setRequestProperty("Connection", "Keep-Alive");
			con.setRequestProperty("Charset", "UTF-8");
			con.setRequestProperty("Content-Length", String.valueOf(data.length));
			con.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
			con.connect();
			DataOutputStream outputStream = new DataOutputStream(con.getOutputStream());
			outputStream.write(data);
			outputStream.flush();
			outputStream.close();
			int responseCode = con.getResponseCode();
			if(responseCode == 200) {
				input = con.getInputStream();
				response = getResponse(input);
			}else {
				input = con.getInputStream();
				response = getResponse(input);
				System.out.println(response);
				response = "返回码为:"+responseCode;
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			con.disconnect();
		}
		return response;
	}
分享到:
评论

相关推荐

    REST WebService 调用工具类

    相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家

    java调用net开发的webservice实例

    java调用net开发的webservice实例下载 问题终于解决了,之前加上?wsdl的时候报如下错: - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect - Retrying ...

    Java建立HttpConnection连接的例子.rar

    Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下:  ContentConnection connection = (ContentConnection) ...

    基于https的httpconnection请求

    java 基于https请求httpconnection, 在代码中加入tls, tls1.2等..

    android httpconnection上传文件

    android中利用httpconnection上传文件。可以选择要上传文件的路径,上传网址

    handy包 HttpConnection FileTool

    handy包 http://blog.csdn.net/facepp/article/details/7439840

    ajax调用java实例源码-webery:韦伯里

    ajax调用java实例源码 Java HTTP 服务器 服务器基于我的 HttpServer< HttpConnection > server = new HttpServer<> ( 8080 ); server . getUrlMapping() .append( " / " , (request, response) - > response ....

    Android异常 java.lang.IllegalStateException解决方法

    Android异常详情介绍 ...2.HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。 3.通常是因为HttpClient访问单一实例的不同的线程或未关闭Input

    license文件

    at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191) at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80) at ...

    Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能

    Android用HttpConnection访问网络时实现类似浏览器自动保持上一次会话的功能

    java-practices:Java实践代码库

    Java和Java 8核心概念 ... 使用HttpConnection API进行联网的Android本机代码(不适用于Volley,Retrofit等库,并尽可能避免使用OkHttpClient) :使用HttpClient和ftp方法进行Rest调用。 其他-Java概念测验: :

    Android实验七.doc

    注意:使用HttpURLConnection,只用调用java自身的jar包中的net方法,而使用Ht tpClient,要引入apache的jar包,调用里面的方法,不过这个是经过封装的,效率更高 。 【思考题】 1. 列举4种Android网络编程API? ...

    J2ME实现从服务器端下载文件(J2me for HttpConnection)

    NULL 博文链接:https://wangxc.iteye.com/blog/591160

    JAVA基于J2ME的手机游戏开发(论文+源代码)

    2.4.6 使用HttpConnection 8 2.4.7 永久性数据(RMS) 9 2.4.8 存储集(Record Store) 10 2.4.9 记录 11 2.4.10 枚举 12 2.4.11 异常 13 2.5 用户界面(LCDUI 13 2.5.1 UI基础 13 2.5.2 高级UI 14 2.5.3 低级UI 15 ...

    JAVA基于J2ME的手机游戏开发吞吃蛇小游戏(论文+源代码)

    2.4.6 使用HttpConnection 8 2.4.7 永久性数据(RMS) 9 2.4.8 存储集(Record Store) 10 2.4.9 记录 11 2.4.10 枚举 12 2.4.11 异常 13 2.5 用户界面(LCDUI 13 2.5.1 UI基础 13 2.5.2 高级UI 14 2.5.3 低级UI 15 ...

    java8源码-QuantaAndroidStu2020:多线程和网络请求直播课源代码

    调用doInBackground() 、 // 主线程上调用:onPreExecute()、onProgressUpdate()、onPostExecute() 二.网络请求(同步与异步) 1.get post 概念 一般来讲 get 从服务器获取数据 post 上传表单到服务器,也会获取...

    Android用HttpConnection访问http网络时实现类似浏览器自动保持上一次会话的功能

    细心的开发者可能会发现,在用浏览器访问http时一般都会自动保持同一个会话,而用代码访问http连接时则每一次访问都会新建一个会话,那么我趁着这几天休假就把之前从网上资料中整理出的一个demo分享出来,实现安卓...

    python直接获取API传递回来的参数方法

    之前用python调用API存JSON的时候试用了很多方法,现在调用API直接获取参数的时候也是查了好多例子(毕竟我是一个初学者)。 结果让我发现了,原来只用把之前写的方法中去掉传参即可。 白白浪费了一个多小时的时间。...

    WeatherApplication.zip_Windows编程_Java_

    PrepareHandler() HttpConnection forecastConnection = new HttpConnection(httpHandler) city = URLEncoder.encode(city) String url = String.format(Definitions.WEATHER_URLforecastConnection.get(urlthis....

    struts扫描及利用工具(2018-11新版)

    [+]增加linux和win的可执行文件,windows需要.NET环境。 [+]增加写入文件功能,针对有漏洞的struts版本号会自动写入success.txt文件。 [+]增加struts2-057检测和利用,生产环境还没有找到可利用的例子,实属鸡肋的洞,...

Global site tag (gtag.js) - Google Analytics