ksoap2 org.xmlpull.v1.xmlpullparserexception 预期的 start_tag 错误

2023-11-29

下面是我编写的代码,用于验证用户登录凭据。使用.net编写的Web服务

private static final String SOAP_ACTION = "http://tempuri.org/getCredentials";
private static final String OPERATION_NAME = "getCredentials";
private static final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
private static final String SOAP_ADDRESS = "http://myStaticIP:portNo/WebSiteName/CommunicationInterface.asmx"; 

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME);
request.addProperty("username",Username);
request.addProperty("password", Password);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httptransport = new HttpTransportSE(SOAP_ADDRESS);

try
{
    httptransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
String value = result.toString();
value_LoginWS = value;
val = value;
login_status = Boolean.valueOf(result.toString());

Log.v("CS return value: -", result.toString());
return value;
}
catch (Exception e) 
{
     Log.v("Exception Soap" , e.toString());
}



排队"httptransport.call(SOAP_ACTION, envelope)"我得到了exception saying

"org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>
@1:7 in java.io.InputStreamReader@41afb3f0)" <br/><br/>

我不知道错误是什么。这段代码非常适合模拟器(更改staticIP to 10.0.2.2:portNo).

请帮我解决这个问题。

谢谢。


以下解决方案经过测试并用于WCF 网络服务

如果你得到这个error

org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>
@1:7 in java.io.InputStreamReader@41afb3f0)"

那么可能的情况是您的代码无法访问 Web 服务,因为它没有提供正确的值

METHOD_NAME="";
NAMESPACE ="";      
SOAP_ACTION ="";
URL ="";

我费了很大劲才找到这些基本但重要的价值观来运行ksoap2

METHOD_NAME="";
NAMESPACE ="";      
SOAP_ACTION ="";
URL ="";

有各种例子实际上告诉我这个值背后的理论,即如何明智地生成它们 SOAPACTION = 命名空间 + 方法名称。

我继续尝试各种组合,但没有结果。

像我这样对 WebServices 和 Ksoap2 缺乏经验并且大部分时间都在使用 JSON 的人 实际上很沮丧,这些值到底是什么以及如何正确获取它们。

经过以下过程后,您将永远不会遇到找出这些值的困难。

运行您的网络服务

1. 网络服务

它会向您显示一个这样的窗口。

Picture 1 webservice

2. WSDL

现在打开它WSDL通过单击文件中标记的链接来查看其选择WSDL

它看起来像这样。

picture 2 wsdl

3.获取WebService的命名空间

现在搜索字符串“Namespace" using Ctrl+F

你会得到这样的东西

picture 3 namespace

在这里你会注意到我们有two namespaces

targetNamespace="http://tempuri.org/">
<wsdl:import namespace="iscservices.dedicated.co.za"

现在要考虑哪一个,我们稍后将在以下步骤中找到答案

现在该使用哪一个,稍后您就会知道

4. 获取方法名称及其对应的SoapAction

查找您想要访问的方法"PutRecipeImagesPost"在这种情况下

Picture 4 Soap Action

你会看到有SOAP Action也在这里为这个方法。

As in Soap action is NameSpace + Methodname在这里我们可以看到它的使用"iscservices.dedicated.co.za"所以我们将最终确定为我们的namespace

5. 获取网址

寻找字符串"soap:address location"

see the picture below

该属性的值将是您的 URL

所以最终我们得到了所有需要的值。

根据我们的例子的值

METHOD_NAME="PutRecipeImagesPost";
NAMESPACE ="iscservices.dedicated.co.za";       
SOAP_ACTION ="iscservices.dedicated.co.za/InterfaceiPhysioIntelWCFService/PutRecipeImagesPost";
URL ="http://10.0.2.2:51809/iPhysioIntelService.svc/second/";

如果您无法看到上述快照或无法获取这些快照的值WSDl然后告诉WebService deveoper解决这个问题。

稍后介绍如何使用KSoap2

请参阅下面的代码片段

SoapObject req = new SoapObject(NAMESPACE,METHOD_NAME);
            //SoapObject req = new SoapObject(Namespace_Server,MethodName_Server);

    //req.addProperty(KEY, VALUE);
//Key : - parameter name that is there in URL of webservice
//value:- value we want to send to the parameter
    req.addProperty("ImageData", data);
    req.addProperty("login", CommonStaticData.getusername());
    req.addProperty("password",CommonStaticData.getpassword());
    req.addProperty("recipeId",FileID);

    MarshalBase64 mbase = new MarshalBase64();// marshal is used to serialize the byte array

    SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelop.bodyOut = req;
    envelop.encodingStyle = SoapSerializationEnvelope.ENC2001;
    envelop.dotNet = true;
    envelop.setOutputSoapObject(req);


    HttpTransportSE aht = new HttpTransportSE(URL);

    mbase.register(envelop);


    aht.call(SOAP_ACTION,envelop);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ksoap2 org.xmlpull.v1.xmlpullparserexception 预期的 start_tag 错误 的相关文章

  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • `DS.attr()` 中的嵌套对象不受 `DS.rollbackAttributes()` 影响

    我有一个模型User如下 import DS from ember data const attr Model DS export default Model extend name attr string properties attr
  • templateUrl 更改时 AngularJS Modal 不显示

    到目前为止 我所拥有的是 Angular UI 示例 控制器 var ModalDemoCtrl function scope modal scope open function var modalInstance modal open t
  • 从托管代码中挂钩 LoadLibrary 调用

    我们希望挂钩对 LoadLibrary 的调用 以便下载未找到的程序集 我们有一个 ResolveAssembly 处理程序来处理托管程序集 但我们还需要处理非托管程序集 我们尝试通过 Microsoft Windows 的编程应用程序 中
  • 动态改变JTree中特定节点的图标

    我已经看过很多在树实例化期间更改节点图标的示例 但我想要一种稍后动态更改单个节点图标的方法 因此 在我的主代码中 我将自定义渲染器添加到我的树中 Icon I want to set nodes to later ImageIcon che
  • 在 Groovy 中执行 Unix cat 命令?

    Hallo 我想从 Groovy 程序执行类似 cat path to file1 path to file2 gt path to file3 的内容 我尝试了 cat path to file1 path to file2 gt pat
  • Android - 访问在线数据库SQlite

    我需要从 Android 应用程序打开 读取项目并将其插入到在线 SQLite 数据库中 我知道网址 用户名和密码 在 JavaSE 中我会执行以下操作 Class forName com mysql jdbc Driver Connect
  • 再次使用java进行字符串比较

    新手问题 但我有这个代码 import java util import java io public class Welcome1 main method begins execution of Java application publ
  • pthread - 暂停/取消暂停所有线程

    我正在尝试在我的应用程序中编写暂停 取消暂停所有线程 该线程由 SIGUSR1 暂停 和 SIGUSR2 取消暂停 激活 我想用pthread cond wait 在所有线程中 当收到信号时 使用pthread cond broadcast
  • 如何使用android创建dll

    我是 Android 应用程序开发新手 我想开发一个dll使用安卓 是否可以开发并集成到android应用程序 请告诉我解决方案 如果可以的话请将解决方案一一告诉我 至于我 我曾经为自己写过一篇关于 NDK 的笔记 这里是 Required
  • MySQL 中加密数据的搜索过滤器

    查询说明 假设我有一个数据库表 它以加密形式存储所有用户的数据 我有一个功能 管理员可以搜索用户数据 现在的问题是 管理员将在文本框中输入普通文本 我必须根据管理员的输入过滤用户列表 在每次文本更改时 因此 与此同时 我拥有大量加密形式的数
  • 如何让tableFooterView始终位于UITableView的底部

    我有一个UITableView具有可变数量的部分 每个部分都有不同数量的单元格 并且每个部分都有页眉和页脚 我的UITableView还有一个tableFooterView我想始终将其保留在屏幕底部 除非表格太大而无法在屏幕上显示 然后ta
  • iphone 粘性菜单 jquery onscroll ios 9

    在更新到之前 这段代码在我的 iPhone 上运行良好iOS 9 0 1 13A404 但现在相同的代码似乎只有在手指松开后才能工作 或者在 jQuery 之后onscroll结束 当我快速滑动以使页面滚动时 document on scr
  • odbc_prepare 给出致命错误:允许的内存大小已耗尽

    我有一个 Debian 服务器 64 位 我想通过 PHP 将其连接到 AS400 的数据库 我已经安装了 IBM i Access for Linux 和 unixodbc 我已经遵循了这个教程 https www albertopica
  • 如何在插入语句的目标数据库名称中使用变量?

    我想声明一个服务器名称并在插入语句中使用该名称 到目前为止我收到的只是一条错误消息 declare machine nvarchar 6 declare bar nvarchar 3 set machine Name00 set bar f
  • 如何使用export_savedmodel保存和恢复tf.estimator.Estimator模型?

    我最近开始使用 Tensorflow 并尝试习惯 tf estimator Estimator 对象 我想做一些非常自然的先验事情 在训练了我的分类器之后 即 tf estimator Estimator 的实例 带有train方法 我想将
  • Pygame绘制抗锯齿填充多边形

    The documentation says For aapolygon use aalines with the closed parameter but pygame draw aalines doesn t let me specif
  • 如果主题带有星号,Outlook 电子邮件存档宏将不起作用

    我正在使用以下代码将我的电子邮件存档到目前完美运行的指定文件夹 除非电子邮件主题包含 然后这会给出调试消息 运行时错误 2147286788 800300fc 我可以在下面的代码中添加任何内容 使其忽略或将 替换为其他内容 以允许它自动存档
  • 火车站所需站台最少数量

    问题如下 给定到达火车站的所有火车的到达和出发时间 任务是找到火车站所需的最少站台数量 以便没有火车等待 火车可以在午夜之前到达 也可以在午夜之后到达 我理解传统问题是如何在没有火车可以在午夜之前到达并在午夜之后离开的条件下工作的 因为我见
  • iPhone 的 UIImageView isAnimating 返回错误

    我发现 isAnimating 即使在完成最大循环数并停止动画之后也会返回 true 然而 一旦你移动 UIImageView 它会突然更新并变为 false 以下是我的代码的重要部分 我以标准方式设置动画 UIImageView newI
  • ksoap2 org.xmlpull.v1.xmlpullparserexception 预期的 start_tag 错误

    下面是我编写的代码 用于验证用户登录凭据 使用 net编写的Web服务 private static final String SOAP ACTION http tempuri org getCredentials private stat