将ArrayList数据传递到android中的SOAP Web服务

2024-04-05

您好,我需要将数组列表数据传递到soap web 服务中。到目前为止,我有以下代码。

    public class ResultActivity extends Activity {
    public final String NAMESPACE = "";
    public final String URL = "";
    public final String SOAP_ACTION_1 = "";
    public final String METHOD_NAME_1 = "";

    ProgressDialog mProgressDialog;
    SoapObject mSoapObjectCompanyDetailResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);

        System.out.println("Size In resxusr " + OnLineApplication.mParserResults.size());
        for (int i = 0; i < OnLineApplication.mParserResults.size(); i++) {

            System.out.println("ID " + OnLineApplication.mParserResults.get(i).getCompanyId());
            System.out.println("Q " + OnLineApplication.mParserResults.get(i).getQuestion());
            System.out.println("A " + OnLineApplication.mParserResults.get(i).getAnswer());
        }

        new insertResult().execute();
    }

    public class insertResult extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            mProgressDialog = ProgressDialog.show(ResultActivity.this, "Wait", "Fetching");
        }

        @Override
        protected Void doInBackground(Void... params) {
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME_1);
            // request.addProperty("dt","");
            for (int i = 0; i < OnLineApplication.mParserResults.size(); i++) {
                request.addProperty("CompanyID", 30);
                request.addProperty("Question", OnLineApplication.mParserResults.get(i).getQuestion());
                request.addProperty("Answer", OnLineApplication.mParserResults.get(i).getAnswer());
            }

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

            try {
                androidHttpTransport.call(SOAP_ACTION_1, envelope);
                mSoapObjectCompanyDetailResponse = (SoapObject) envelope.bodyIn;
                Object re = null;
                re = envelope.getResponse();

                Log.i("myApp", mSoapObjectCompanyDetailResponse.toString());
                System.out.println("re " + mSoapObjectCompanyDetailResponse.toString());
                // mStringCompanyID=re.toString();

            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            if (mProgressDialog != null) {
                mProgressDialog.dismiss();
            }

        }

    }

}

我的 XML WSDL 服务如下。

    <wsdl:types>
    <s:element name="insertResultUser">
    <s:complexType>
       <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="dt">
       <s:complexType>
         <s:sequence>
        <s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
           <s:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax"/>
                    </s:sequence>
                </s:complexType>
               </s:element>
                </s:sequence>
             </s:complexType>
               </s:element>
              <s:element name="insertResultUserResponse">
             <s:complexType>
            <s:sequence>
             <s:element minOccurs="0" maxOccurs="1" name="insertResultUserResult" type="s:string"/>
            </s:sequence>
         </s:complexType>
        </s:element>
     </s:schema>
      </wsdl:types>
      <wsdl:portType>
     <wsdl:operation name="insertResultUser">
     <wsdl:input message="tns:insertResultUserSoapIn"/>
       <wsdl:output message="tns:insertResultUserSoapOut"/>
        </wsdl:operation>
        </wsdl:portType>

以下数据结构是我需要传递给如上所述的 Web 服务的数据结构。

dt=anyType{DocumentElement=anyType{questions=anyType{CompanyID=1; Question=what is  android?; Answer=OS; };

 questions=anyType{CompanyID=1; Question=what is android?; Answer=OS; }; 
 questions=anyType{CompanyID=1; Question=what is android?; Answer=OS; };
 questions=anyType{CompanyID=1; Question=what is android?; Answer=OS; };
  questions=anyType{CompanyID=1; Question=what is android?; Answer=OS; }; }; }; }; }

当我运行上面的代码时,我无法将 Arraylist 数据发布到服务器。在我的 onCreate 方法中,我可以打印我的 Arraylist 值。我该如何解决这个问题?


Try this code:

SoapObject request = new SoapObject(Wsdl_Target_NameSpace,
            Method_Name);
    for (int i = 0; i < Property_Key.size(); i++) {
        request.addProperty(Property_Key.get(i), Property_Value.get(i));
    }
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = null;
    androidHttpTransport = new HttpTransportSE(Url_location);
    androidHttpTransport.call(Soap_Action, envelope);
    SoapObject results = (SoapObject) envelope.bodyIn;
    Vector response = (Vector) envelope.getResponse();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将ArrayList数据传递到android中的SOAP Web服务 的相关文章

随机推荐

  • 此代码中出现 HFValidationError 的原因是什么?如何解决此错误?

    我在 Chaquopy android studio 项目中的 python 代码 import torch as tc from transformers import GPT2Tokenizer GPT2Model def genera
  • Vue 和 Jest 单元测试组件

    我是新来的Vue js 我从单元测试开始Jest 我不知道从哪里开始以及如何开始 我有这段 Vue 代码 我想使用 Jest 进行测试 任何提示或想法我都会非常感激 我读到我应该使用浅安装 from Vue 测试实用程序避免组件测试过程中出
  • CSS 旋转并定位到页面左下角

    我试图将 div 放置在窗口的左下角 以便它始终卡在那里 但它应该包含从下向上阅读的文本 如图所示 pic 1 https i stack imgur com k4PGN jpg 我尝试过这种样式 ms transform rotate 2
  • 解释awk命令

    今天我在网上搜索一个命令来打印模式后的下两行 我遇到了一个我无法理解的 awk 命令 usr xpg4 bin awk PATTERN 2 input 有人可以解释一下吗 See https stackoverflow com a 1791
  • 如何在 echo 调用中运行函数

    这是一个快速但简单的问题 我今天过得很糟糕 不知道该怎么做 我需要做的是这个 我正在检查 url 中的 PMD 如果是这样 请回显
  • 使用curl上传本地目录中的所有文件

    我想上传一个目录中的所有文件 并且我知道如何使用curl上传一个文件 如下所示 curl T local xxx suffix u xxx psw ftp 192 168 1 158 public demon test xxx suffix
  • 有没有一种方法可以编辑符号链接而不先删除它? [复制]

    这个问题在这里已经有答案了 所以我创建了一个符号链接 https en wikipedia org wiki Symbolic link ln s location to link linkname 现在我想更改符号链接链接到的位置 我怎么
  • 如何在打字稿中将 Observable 中存储的值转换为字符串?

    您好 我是 Angular 和 TypeScript 的新手 我需要一个值Observable在字符串的格式中 如何做到这一点 BmxComponent 文件 export class BmxComponent asyncString th
  • 组件加载时如何设置角度垫选择值?

    我使用了有角的材料 角度 材料 7 1 0 mat select box 然后我使用表单控件而不是 ng model 现在的问题是我无法在组件加载时设置值 我需要将第一个值设置为列表中的 mat select box 我尝试过 但我做不到
  • Gradle 不包括 FXML 和图像

    我一直在寻找将 FXML 和图像包含在build gradle以便将它们构建到罐子中 我有看here https stackoverflow com questions 21128652 location is required in ja
  • 比较数据网格中同一行的两个单元格

    使用 C NET 4 5 MS Visual Studio 2012 WPF 你好 刚刚让这段代码终于起作用了 它基本上是通过数据网格进行迭代来进行行的 请注意 他可能会冒犯所有 WPF 奇才 public IEnumerable
  • 如何下载 Telegram 群组的聊天记录?

    我想下载 Telegram 公共群组中发布的聊天记录 所有消息 我怎样才能用Python做到这一点 我在API中找到了这个方法https core telegram org method messages getHistory https
  • 使用 ssh-keygen 创建 JSch 接受的 SSH 私钥 [重复]

    这个问题在这里已经有答案了 不是直接的编程问题 但有某种相关性 JSch Java SSH 库 似乎不允许 macOS 10 14 使用以下命令创建私钥 ssh keygen t rsa b 4096 我应该使用什么命令来创建具有这种格式的
  • 需要一个支持自动布局的可视化java库

    我需要一个用于可视化的 java 图形库 我可以将其合并到我自己的应用程序中 我发现 jgraph 非常适合可视化 但需要明确定位节点 有没有支持自动布局的开源java图形库 任何建议都会对我非常有帮助 有许多软件包可以做到这一点 如果你习
  • 如何在 Haskell 中获取 Maybe 的值

    我对 Haskell 比较陌生 并开始阅读 Real World Haskell 我刚刚偶然发现了 Maybe 类型 并且有一个关于如何从 a 接收实际值的问题Just 1例如 我编写了以下代码 combine a b c eliminat
  • 使用 npm 安装 Angular-cli 时出错

    当我尝试使用 npm 安装 Angular cli 时 出现错误 代码为 ETIMEDOUT 我尝试删除代理 代理和 HTTP 代理 尝试在管理模式下运行 cmd 更改 Nodejs 目标的路径 npm ERR code ETIMEDOUT
  • document.documentElement.scrollTop 返回值在 Chrome 中有所不同

    我正在尝试根据 处理一些代码document documentElement scrollTop 价值 它返回 348 在 FF 和 IE 中 但在 Chrome 中它返回 0 我需要做些什么来克服这个问题吗 FF gt gt gt doc
  • 具有 Visual Studio 编辑器功能的独立文本编辑器

    有人知道任何具有 Visual Studio 编辑器功能的文本编辑器吗 具体来说 我正在寻找以下功能 CTRL C 行中任意位置 未选择任何文本 gt 复制整行 在线任意位置按 CTRL X 或 SHIFT DEL 未选择任何文本 gt 剪
  • Perl 逐行读取

    我有一个简单的 Perl 脚本来逐行读取文件 代码如下 我想显示两行并打破循环 但这不起作用 错误在哪里 file SnPmaster txt open INFO file or die Could not open file count
  • 将ArrayList数据传递到android中的SOAP Web服务

    您好 我需要将数组列表数据传递到soap web 服务中 到目前为止 我有以下代码 public class ResultActivity extends Activity public final String NAMESPACE pub