【发布时间】: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