【问题标题】:HttpService Error #2096HttpService 错误 #2096
【发布时间】:2013-02-04 13:50:04
【问题描述】:

我编写了一个 Httpservice 来从服务器获取数据,但是当我尝试运行该服务时,它得到了错误 (#2096)。以下是我的代码:

package

{

import flash.net.URLRequestHeader;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.messaging.AbstractConsumer;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;

public class JSONDataLoader
{

    private var httpService:HTTPService;

    private var errVO:ErrVO;
    [Bindable]
    public var errAC:ArrayCollection = new ArrayCollection();

    [Bindable]
    public var errStr:String;

    public function JSONDataLoader(url:String)
    {
        httpService = new HTTPService();
        httpService.url = url;
        httpService.method = "POST";
        httpService.contentType = "application/json";

        var headerParams:Object = new Object();

        headerParams["Host"] = "192.168.11.59:3333";
        headerParams["Content-Length"] = 347;

        httpService.headers = headerParams;

        var parameters:Object = new Object();
        parameters["FromDate"] = "01-01-2013 18:30";
        parameters["Location"] = "String content";
        parameters["LocationId"] = 2147483647;
        parameters["ReportId"] = 9223372036854775807;
        parameters["ReportName"] = "String content";
        parameters["Team"] = "17,22,30,1,40,53,55,69,70,73,77";
        parameters["TeamId"] = 2147483647;
        parameters["ToDate"] = "01-01-2013 18:30";

        httpService.send(parameters);
        httpService.addEventListener(ResultEvent.RESULT, resultHandler);
        httpService.addEventListener(FaultEvent.FAULT, faultHandler);
    }

    private function resultHandler(event:ResultEvent):void
    {
        var rawData:String = String(event.result);
        var obj:Object = JSON.parse(rawData);

        Alert.show("Data: " + rawData);
    }

    private function faultHandler(event:FaultEvent):void 
    {
        errStr = event.fault.faultString+" "+event.message;
        Alert.show("Error!!!" + errStr);

    }
}

}

我在这里做什么。我的标头或请求正文是否有问题。

请帮帮我,因为我在过去 2 天一直被这个问题困扰。

这是完整的错误信息...

错误!!!错误 #2096 (mx.messaging.messages::HTTPRequestMessage)#0 身体 = (对象)#1 FromDate = "01-01-2013 18:30" 位置 = "字符串内容" 位置 ID = 2147483647 报告 ID = 9223372036854776000 ReportName = "字符串内容" 团队 = "17,22,30,1,40,53,55,69,70,73,77" 团队 ID = 2147483647 ToDate = "01-01-2013 18:30" clientId = (null) contentType = "应用程序/json" 目的地=“默认HTTP” 标头=(对象)#2 DSEndpoint = "direct_http_channel" httpHeaders = (对象)#3 内容长度 = 347 主机 = “192.168.11.59:3333” messageId = "C130487E-0EBA-375E-E71D-A580EFE175EE" 方法=“发布” 记录标头 = 假 时间戳 = 0 生存时间 = 0 url = "我的网址"

【问题讨论】:

  • 该服务是否需要您通过标头传递的任何身份验证?如果没有,我建议您创建一个 html 页面,其中输入文本字段的名称和值与您描述的内容相匹配,然后发布到您编写的服务,看看它是否确实返回了所需的 JSON 字符串。
  • 另外,尝试使用 Charles Proxy 之类的工具来检查来回的流量。
  • 天真和艾米您好,感谢您对此进行调查。此服务不需要验证密码。请你能告诉我是什么问题或我哪里出错了。
  • 大家好,我通过不同的方式实现了同样的目标。我放弃了使用 HTTP 服务并使用 URL 请求的想法,它对我有用。无论如何感谢您的所有帮助。快乐的编码... :-)

标签: actionscript-3 apache-flex http-headers httpservice


【解决方案1】:

您可能需要检查参数的内容是否包含非法字符,例如''。用'& l t;'替换它们或'&g t;' (不带空格)可以解决问题。

HttpService在发送或接收包含这两个标记的字符串时可能会发生错误。

使用 URLRequest 会是更好的选择,因为它不会出现这个问题。

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2022-01-26
    • 2019-08-31
    • 2017-02-26
    相关资源
    最近更新 更多