0

我想在 ActionScript 中加载一个 api。在这个链接https://market.mashape.com/vivekn/sentiment-3 curl 请求是这样的:

curl -X POST --include 'https://community-sentiment.p.mashape.com/text/' \
-H 'X-Mashape-Key: YourPrivateApiKeyHere' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json' \
-d 'txt=Today is  a good day'

我将如何在 AS3 中使用它。提前致谢。

4

2 回答 2

1

您可以使用URLLoader类进行 REST 调用。

将 api 的自定义标头映射到URLRequestHeader类,并将自定义 http 选项映射到URLRequest类。

示例跟踪输出:

[trace] {
[trace]   "result": {
[trace]     "confidence": "72.7805",
[trace]     "sentiment": "Negative"
[trace]   }
[trace] }
[trace] 72.7805
[trace] Negative

ActionScript 剪切/粘贴示例(只需添加您的私人事故 api 密钥):

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.Event;
    import flash.events.HTTPStatusEvent;
    import flash.events.SecurityErrorEvent;
    import flash.events.IOErrorEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLRequestHeader;
    import flash.net.URLRequestMethod;
    import flash.net.URLLoaderDataFormat;

    public class Main extends Sprite {
        var textField1:TextField = new TextField();
        var textField2:TextField = new TextField();
        var textField3:TextField = new TextField();

        public function Main() {
            textField1.text = "Today is a bad day";
            addChild(textField1);
            textField2.x = 150;
            addChild(textField2);
            textField3.x = 200;
            addChild(textField3);

            var apiKey:String = "your api key here";
            var url:String = "https://community-sentiment.p.mashape.com/text/";
            var headers:Array = [
                new URLRequestHeader("X-Mashape-Key", apiKey),
                new URLRequestHeader("Accept", "application/json"),
                new URLRequestHeader("Content-Type","application/x-www-form-urlencoded")
            ];
            var request:URLRequest = new URLRequest(url);
            request.method = URLRequestMethod.POST;
            request.requestHeaders = headers;
            request.data = "txt=" + textField1.text;

            var urlLoader:URLLoader = new URLLoader();
            urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
            urlLoader.addEventListener(Event.COMPLETE, httpRequestComplete, false, 0, true);
            urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, httpRequestError, false, 0, true);
            urlLoader.addEventListener(IOErrorEvent.IO_ERROR, httpRequestError, false, 0, true);
            urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler, false, 0, true);
            urlLoader.load(request);
        }

        private function httpRequestComplete(event:Event):void {
            trace(event.target.data);
            var response:Object = JSON.parse(event.target.data);
            trace(response.result.confidence);
            trace(response.result.sentiment);

            textField2.text = response.result.confidence;
            textField3.text = response.result.sentiment;
        }

        private function httpRequestError(event:IOErrorEvent):void {
            trace("Error: " + event.errorID + " " + event.text);
        }

        function httpStatusHandler(event:HTTPStatusEvent):void {
            if (event.status != 200) {
                trace("httpStatusHandler: " + event.status);
            }
        }
    }
}
于 2015-10-24T09:09:44.623 回答
1

我不会对@RobertN 的答案添加太多内容,只是一些小解释。

要使用 ActionScript 执行 HTTP 请求,您需要:

    // 创建一些变量
var url_variables:URLVariables = new URLVariables();
    url_variables.txt = '你好';

    // 设置 HTTP 请求的 URL
var url_request:URLRequest = new URLRequest('https://community-sentiment.p.mashape.com/text/')
    // 设置内容类型
    url_request.contentType = '应用程序/x-www-form-urlencoded';
    // 设置请求方法
    url_request.method = URLRequestMethod.POST;
    // 设置一些请求头
    url_request.requestHeaders.push(new URLRequestHeader('X-Mashape-Key', 'your-key-here'));
    url_request.requestHeaders.push(new URLRequestHeader('Accept', 'application/json'));

    // 设置变量
    url_request.data = url_variables;

var url_loader:URLLoader = new URLLoader();
    url_loader.addEventListener(Event.COMPLETE, on_Complete);
    url_loader.load(url_request);

函数 on_Complete(e:Event): 无效
{
    跟踪(e.target.data);
    //给出:
    // {
    // “结果”: {
    // "信心": "50.0000",
    // “情绪”:“中性”
    // }
    // }
}

有关 Web 服务请求的更多信息,请查看此处

希望能有所帮助。

于 2015-10-24T09:55:43.190 回答