我想在ActionScript中加载一个api。正是在此链接https://market.mashape.com/vivekn/sentiment-3 卷曲请求是这样的:
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中使用它。在此先感谢。
答案 0 :(得分: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);
}
}
}
}
答案 1 :(得分:1)
我不会在@RobertN的答案中添加太多,只是一些小解释。
要使用ActionScript执行HTTP请求,您需要:
将执行HTTP请求的URLRequest
对象。
将会下载数据的URLLoader
对象。
使用HTTP请求发送一些变量的URLVariables
对象。
一些URLRequestHeader
个对象要发送一些自定义HTTP请求标头。
// create some variables var url_variables:URLVariables = new URLVariables(); url_variables.txt = 'hello'; // set the URL of the HTTP request var url_request:URLRequest = new URLRequest('https://community-sentiment.p.mashape.com/text/') // set the content type url_request.contentType = 'application/x-www-form-urlencoded'; // set the request method url_request.method = URLRequestMethod.POST; // set some request headers url_request.requestHeaders.push(new URLRequestHeader('X-Mashape-Key', 'your-key-here')); url_request.requestHeaders.push(new URLRequestHeader('Accept', 'application/json')); // set the variables url_request.data = url_variables; var url_loader:URLLoader = new URLLoader(); url_loader.addEventListener(Event.COMPLETE, on_Complete); url_loader.load(url_request); function on_Complete(e:Event): void { trace(e.target.data); // gives : // { // "result": { // "confidence": "50.0000", // "sentiment": "Neutral" // } // } }
有关网络服务请求的详情,请查看here。
希望可以提供帮助。