android调用webservice发送header身份验证不成功

============问题描述============

我的代码

SoapObject request = new SoapObject(

"http://webservices.home.whot.com", "getVoteImgPath");

String namespace = "http://webservices.home.whot.com";

Element[] header = new Element[1];

header[0] = new Element().createElement(namespace,

"authenticationtoken");

// Element userName = new Element().createElement(namespace, "username");

// userName.addChild(Node.TEXT, "q1101876746");

// header[0].addChild(Node.ELEMENT, userName);

//

// Element pass = new Element().createElement(namespace, "password");

// pass.addChild(Node.TEXT, "252931024");

// header[0].addChild(Node.ELEMENT, pass);

header[0].setAttribute(namespace, "username", "q1101876746");

header[0].setAttribute(namespace, "password", "252931024");

//<soap:Header><authenticationtoken><username>abcd</username><password>34</password></authenticationtoken></soap:Header>

request.addProperty("id", 163);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);

envelope.headerOut = header;

envelope.bodyOut = request;

envelope.dotNet = true;

// envelope.setOutputSoapObject(request);

HttpTransportSE ht = new HttpTransportSE(

"http://test.rank365.cn/open/services/StartVotes");

ht.debug = true;

try {

long start = System.currentTimeMillis();

ht.call(null, envelope);

long timeNum = System.currentTimeMillis() - start;

Log.i("SoapService", "callService时长:" + timeNum);

// Object bodyIn = envelope.bodyIn;

Object response = envelope.getResponse();

// Object response = envelope.bodyIn;

if (response != null) {

// String str = JsonUtils.object2Json(response);

// System.out.println(str);

System.out.println(response.toString()+"-------------");

System.out.println(ht.requestDump);

System.out.println("-----------------------------");

System.out.println(ht.responseDump);

return response;

} else {

// TODO 其他情况处理

}

} catch (Exception e) {

e.printStackTrace();

System.out.println(ht.requestDump);

if (handler != null) {

Message msg = handler.obtainMessage();

// msg.what = Constants.HANDLER_WHAT_EXCEPTION;

msg.obj = "连接服务器连接异常";

handler.sendMessage(msg);

}

}


return null;

============解决方案1============

没接触过,帮你顶吧

============解决方案2============

http://stackoverflow.com/questions/11179610/customization-of-ksoap2-android-envelope这个问题和你一样的

时间: 2024-10-14 14:46:43

android调用webservice发送header身份验证不成功的相关文章

Android调用Webservice发送文件

一服务器端C#这里有三个上传方法1.uploadFile( byte []bs, String fileName); PC机操作是没有问题2. uploadImage(String filename,String image); //android大于1M上传会出问题(内存溢出),把文件件转换为Base64字符串上传3. uploadResume(String filename, String image, int tag); //android可以传大文件 using System;using

ANDROID调用webservice带soapheader验证

最近的一个项目中调用webservice接口,需要验证soapheader,现将解决方法记录如下:(网上资料出处太多,就不做引用,原作者如看到,如有必要添加请通知) 1.先看接口 POST /webserver/ValideWebService.asmx HTTP/1.1 Host: IP地址 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://命名空间/Login" <

Android调用WebService之服务端实现(一)

webserviceandroidservicemyeclipsestring服务器 目录(?)[-] 一构建WebServices 二新建一个WebService客服端进行测试 原创文章,转载请注明出处:http://www.blog.csdn.net/tangcheng_ok 这个简单的WebService服务将用来给Android客户端调用的,我们使用xfire来实现相关功能.WebService不多做介绍,google下一大堆呢,这里只是简单的搭建一个WebService让Android

Android 调用webService(.net平台)

什么是webservice? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序.Web   Service所使用的是Internet上统一.开放的标准,如HTTP.XML.SOAP(简单对象访问协议).WSDL(webservice描述语言)等,所以Web   Service可以在任何支持这些标准的环境(Windows,Lin

Android调用WebService之客户端实现(二)

原创文章,转载请注明出处:http://www.blog.csdn.net/tangcheng_ok 要在Android调用WebService,必须需要一些库来支持,上面的例子中是,我们通过XFire来访问WebService,但这些库对于我们Android客户端就不适合了.这里介绍一个google code上的一个开源项目Ksoap2-android,Ksoap2-android提供了一个轻量而高效的SOAP库访问WebService. 下载ksoap2-android-assembly-2

Android调用WebService系列之对象构建传递

上一篇我们讲了如何封装Android调用WebService的能力,把上一章的类加入我们便有了与WebService通讯的能力.往往我们会遇到WebService调用是通过对象来进行实际交互调用的.于是便有了这一章构建对象传递. 首先我们了解一下. Ksoap2这个开源包里面提供了一个接口 /* Copyright (c) 2003,2004, Stefan Haustein, Oberhausen, Rhld., Germany  *  * Permission is hereby grant

Android调用WebService系列之请求调用

好久没写博客,快有3年了.当初想在CTO把自己的技术文章一直延续,可却没有坚持! 开发Android网络App,通讯方式决定了你App所需的能力! 最近正在用Web Service进行通讯,那么就让我来讲讲Web Service吧! 一.了解Web Service是什么? 请查看(http://baike.baidu.com/link?url=7IdTbG7yw6FKJ_CU0NJYny74IsDrgay861ywsm0u_aBBG5zSwkvYgxVopH2iPdyr4_witJRYf_W6W

Android调用WebService系列之封装能力

上一篇,我们简单的讲述了Android如何进行WebService调用! 而往往我们在项目中会先封装一下再使用!那么我们如何进行能力封装使用呢? 一.了解共性,机制,思考可扩展,独立,可移植性. 首先在Android中通讯,我们必不可少的那便是Handler,Thread. 由于Android的机制,我们需要考虑 UI线程不能处理耗时操作,显然通讯属于耗时操作.所以我们用到Thread 子线程不能更新UI线程,所以我们需要用Handler机制来通知UI线程做出反应 由于服务器语种我们需要考虑 目

Android调用WebService系列之KSoap2对象解析

在在网络APP中有2个非常重要的节 客户端请求服务端接口的能力 客户端,服务端的对接 而我的Android调用WebService系列共四篇这是最后一篇,所要讲述的只仅仅是Android调用WebService这一种比较少用且不推荐用,但是在一些特定的场合下不得不用的调用方式. Android调用WebService系列之封装能力,Android调用WebService系列之请求调用是讲的请求服务端的能力主要是介绍APP如何拥有,或者说更好的更方便的拥有这种能力 而Android调用WebSer