`
mayEyeInfo
  • 浏览: 5059 次
  • 性别: 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;
	}
分享到:
评论

相关推荐

    j2me调用.net WebService实例

    在本文中,我们将深入探讨如何使用J2ME(Java 2 Micro Edition)调用.NET Web服务,并解决中文字符传输的问题。这个过程涉及多个步骤,包括环境配置、创建Web服务、设置编码以及编写J2ME客户端。 首先,确保你已经...

    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) ...

    android HttpURLConnection上传图片demo

    ```java Bitmap bitmap = BitmapFactory.decodeFile(filePath); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] imageBytes = ...

    JAVA实现HTTP断点续传[借鉴].pdf

    在Java中,我们可以利用`java.net.URL`和`java.net.HttpURLConnection`类来实现HTTP断点续传。以下是一个简单的示例: 1. 首先创建一个`URL`对象,指定要下载的文件的URL。 ```java URL url = new URL(...

    用Java实现断点续传

    1. **初始化连接**:首先需要通过`java.net.URL`和`java.net.HttpURLConnection`创建与远程服务器的连接。 ```java URL url = new URL("http://www.sjtu.edu.cn/down.zip"); HttpURLConnection httpConnection ...

    java中http断点续传的原理

    1. **使用Java.net.HttpURLConnection发送带有RANGE字段的请求**:Java提供了丰富的网络编程API,其中`HttpURLConnection`类可以方便地构建HTTP请求并处理响应。通过设置请求属性`RANGE`来指定下载的起始位置。 ``...

    基于https的httpconnection请求

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

    webservers

    ### WebService调用详解 在IT领域中,`WebService`是一种重要的通信协议,它允许不同系统之间通过网络进行数据交换和服务交互。本文将基于提供的代码片段深入探讨如何使用Java实现`WebService`的客户端调用。 ####...

    Java ME 移动开发实例精讲

    学习如何使用HttpConnection和InputStream/OutputStream进行网络操作是Java ME开发的关键技能。 5. **存储管理**:在资源有限的移动设备上,数据存储是一个挑战。Java ME提供了RecordStore API,用于存储小量结构化...

    ch4.rar_j2me 网络

    J2ME提供了多种网络功能,这些功能主要是通过Java.io和Java.net包中的类来实现的。在J2ME的Connected Limited Device Configuration (CLDC) 和 Mobile Information Device Profile (MIDP) 中,我们主要使用`javax....

    javaME 开发源码javaME 开发源码

    JavaME,全称为Java Micro Edition,是Java技术在嵌入式设备和移动设备上的应用版本。这个平台主要用于开发和部署在手机、智能家电、车载系统等小型设备上的应用程序。JavaME为开发者提供了一套标准的API,使得软件...

    java实现断点续传

    - Java的`java.net`包中的`HttpURLConnection`类提供了一个方便的方式来进行HTTP请求,包括发送`Range`头以支持断点续传。 - 例如: ```java URL url = new URL("http://www.sjtu.edu.cn/down.zip"); ...

    java me API中文手册

    6. **网络编程**:Java ME提供了HttpConnection和SocketConnection接口,用于进行HTTP和TCP/IP通信,开发者可以利用这些接口实现网络应用,如下载、上传、网页浏览等。 7. **数据存储**:RecordStore API允许开发者...

    Java 手机 PDA 程序设计入门.rar

    4. **网络通信**:Java ME提供了HttpConnection API,用于实现HTTP协议的网络通信。这使得应用程序可以访问互联网资源,如发送HTTP请求、接收数据等。 5. **文件系统操作**:虽然移动设备的存储空间有限,但Java ME...

    Android网络开发详解

    import java.net.HttpURLConnection; public class NetworkExample { public static void main(String[] args) throws Exception { // 创建一个URL对象 URL url = new URL("http://example.com"); // 创建一个...

    Java移动通信程序设计.rar_java 手机_手机 java_移动通信

    【Java移动通信程序设计】是针对Java在手机平台上的应用开发的一个学习资源,主要关注Java在移动通信领域的应用,特别是J2ME(Java Micro Edition)和MIDP(Mobile Information Device Profile)技术。这个压缩包...

    android httpconnection上传文件

    在Android开发中,HTTPConnection是Java的标准库提供的一种网络通信方式,可以用于实现文件的上传。这个过程涉及到了网络编程、文件操作以及多线程等关键知识点。下面将详细讲解如何在Android应用中使用...

Global site tag (gtag.js) - Google Analytics