最近项目上要求调用异地的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(Java 2 Micro Edition)调用.NET Web服务,并解决中文字符传输的问题。这个过程涉及多个步骤,包括环境配置、创建Web服务、设置编码以及编写J2ME客户端。 首先,确保你已经...
相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家
java调用net开发的webservice实例下载 问题终于解决了,之前加上?wsdl的时候报如下错: - I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect - Retrying ...
Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下: ContentConnection connection = (ContentConnection) ...
```java Bitmap bitmap = BitmapFactory.decodeFile(filePath); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] imageBytes = ...
在Java中,我们可以利用`java.net.URL`和`java.net.HttpURLConnection`类来实现HTTP断点续传。以下是一个简单的示例: 1. 首先创建一个`URL`对象,指定要下载的文件的URL。 ```java URL url = new URL(...
1. **初始化连接**:首先需要通过`java.net.URL`和`java.net.HttpURLConnection`创建与远程服务器的连接。 ```java URL url = new URL("http://www.sjtu.edu.cn/down.zip"); HttpURLConnection httpConnection ...
1. **使用Java.net.HttpURLConnection发送带有RANGE字段的请求**:Java提供了丰富的网络编程API,其中`HttpURLConnection`类可以方便地构建HTTP请求并处理响应。通过设置请求属性`RANGE`来指定下载的起始位置。 ``...
java 基于https请求httpconnection, 在代码中加入tls, tls1.2等..
### WebService调用详解 在IT领域中,`WebService`是一种重要的通信协议,它允许不同系统之间通过网络进行数据交换和服务交互。本文将基于提供的代码片段深入探讨如何使用Java实现`WebService`的客户端调用。 ####...
学习如何使用HttpConnection和InputStream/OutputStream进行网络操作是Java ME开发的关键技能。 5. **存储管理**:在资源有限的移动设备上,数据存储是一个挑战。Java ME提供了RecordStore API,用于存储小量结构化...
J2ME提供了多种网络功能,这些功能主要是通过Java.io和Java.net包中的类来实现的。在J2ME的Connected Limited Device Configuration (CLDC) 和 Mobile Information Device Profile (MIDP) 中,我们主要使用`javax....
JavaME,全称为Java Micro Edition,是Java技术在嵌入式设备和移动设备上的应用版本。这个平台主要用于开发和部署在手机、智能家电、车载系统等小型设备上的应用程序。JavaME为开发者提供了一套标准的API,使得软件...
6. **网络编程**:Java ME提供了HttpConnection和SocketConnection接口,用于进行HTTP和TCP/IP通信,开发者可以利用这些接口实现网络应用,如下载、上传、网页浏览等。 7. **数据存储**:RecordStore API允许开发者...
4. **网络通信**:Java ME提供了HttpConnection API,用于实现HTTP协议的网络通信。这使得应用程序可以访问互联网资源,如发送HTTP请求、接收数据等。 5. **文件系统操作**:虽然移动设备的存储空间有限,但Java ME...
import java.net.HttpURLConnection; public class NetworkExample { public static void main(String[] args) throws Exception { // 创建一个URL对象 URL url = new URL("http://example.com"); // 创建一个...
【Java移动通信程序设计】是针对Java在手机平台上的应用开发的一个学习资源,主要关注Java在移动通信领域的应用,特别是J2ME(Java Micro Edition)和MIDP(Mobile Information Device Profile)技术。这个压缩包...
在Android开发中,HTTPConnection是Java的标准库提供的一种网络通信方式,可以用于实现文件的上传。这个过程涉及到了网络编程、文件操作以及多线程等关键知识点。下面将详细讲解如何在Android应用中使用...