标签: httpservice

使用Adobe Flex/AIR中的HTTPService对象进行HTTP基本身份验证

我正在尝试从Adobe AIR应用程序中请求需要基本授权标头的HTTP资源.我尝试手动将标头添加到请求中,以及使用setRemoteCredentials()方法设置它们,但无济于事.

这是代码:

<mx:Script>
    <![CDATA[
        import mx.rpc.events.ResultEvent;
        import mx.rpc.events.FaultEvent;

        private function authAndSend(service:HTTPService):void
        {
            service.setRemoteCredentials('someusername', 'somepassword');
            service.send();
        }

        private function resultHandler(event:ResultEvent):void
        {
            apiResult.text = event.result.toString();
        }

        private function resultFailed(event:FaultEvent):void
        {
            apiResult.text = event.fault.toString();
        }
    ]]>
</mx:Script>

<mx:HTTPService id="apiService"
    url="https://mywebservice.com/someFileThatRequiresBasicAuth.xml"
    resultFormat="text"
    result="resultHandler(event)"
    fault="resultFailed(event)" />

<mx:Button id="apiButton"
    label="Test API Command"
    click="authAndSend(apiService)" />

<mx:TextArea id="apiResult" />
Run Code Online (Sandbox Code Playgroud)

但是,仍然会弹出标准的基本身份验证对话框,提示用户输入用户名和密码.我有一种感觉,我没有以正确的方式做到这一点,但我能找到的所有信息(Flex文档,博客,谷歌等)要么没有用,要么太模糊无法提供帮助.

任何黑魔法,哦Flex大师?谢谢.


编辑:将setRemoteCredentials()更改为setCredentials()会产生以下ActionScript错误:

[MessagingError message='Authentication not supported on DirectHTTPChannel (no proxy).']
Run Code Online (Sandbox Code Playgroud)

编辑:经过Adobe的一些关注后,问题解决了.有关完整说明,请参阅下面的帖子.此代码适用于任意长度的HTTP身份验证标头.

import mx.utils.Base64Encoder;
private function authAndSend(service:HTTPService):void
{
        var encoder:Base64Encoder = new Base64Encoder();
        encoder.insertNewLines = false; …
Run Code Online (Sandbox Code Playgroud)

apache-flex air http-authentication httpservice

31
推荐指数
2
解决办法
5万
查看次数

HTTP服务正在启动或停止.请稍后再试一次Windows 7上的错误

我使用以下命令来停止HTTP服务

net stop http /y 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

服务正在开始或停止.请稍后再试.

现在HTTP服务处于中间状态.它既没有停止也没有开始.我该怎么办?

我读了一些类似的问题,但他们没有帮助.

无法在Windows 7中停止IIS

windows-services httpservice

10
推荐指数
1
解决办法
2万
查看次数

在flex上设置JSON内容类型:在flex中设置HttpService

我试图在httpservice上设置json内容类型,以使REST服务返回json数据.当我在fiddler中添加内容类型时,所有工作正常,因此问题在flex应用程序中,而不是在Web服务中.但是下面的代码不起作用,我得到xml数据而不是json.

有人能为我提供解决方法/解决方案吗?

MXML:

<s:HTTPService id="service" method="POST" url="server.com" 
               result="loaded(event)" fault="fault(event)" 
               useProxy="false" resultFormat="text">
Run Code Online (Sandbox Code Playgroud)

动作:

public function loadAllSamples():void {
    service.contentType = "application/json";
    service.send('something');
}
Run Code Online (Sandbox Code Playgroud)

apache-flex json actionscript httpservice

7
推荐指数
2
解决办法
8889
查看次数

模块上下文中提供了如何修复索引 [0] 处的 AXIOS_INSTANCE_TOKEN

我在我的项目中使用 Axios 来调用一些第三方端点。我似乎不明白错误

Nest can't resolve dependencies of the HttpService (?). Please make sure that the argument 
AXIOS_INSTANCE_TOKEN at index [0] is available in the TimeModule context.

Potential solutions:
- If AXIOS_INSTANCE_TOKEN is a provider, is it part of the current TimeModule?
- If AXIOS_INSTANCE_TOKEN is exported from a separate @Module, is that module imported within TimeModule?
  @Module({
    imports: [ /* the Module containing AXIOS_INSTANCE_TOKEN */ ]
  })
Run Code Online (Sandbox Code Playgroud)

这是模块

@Module({
  imports: [TerminalModule,],
  providers: [TimeService, HttpService],
  controllers: [TimeController]
})
export class …
Run Code Online (Sandbox Code Playgroud)

httprequest httpservice node.js axios nestjs

7
推荐指数
2
解决办法
4477
查看次数

Flex中的两个不同的HTTPService类

为什么Flex中有两个不同的HTTPService类? 这个这个

第二个继承了第一个.为什么不能将这两者结合起来?

apache-flex httpservice

5
推荐指数
1
解决办法
1818
查看次数

如何在失败时访问 HTTP 响应正文?

当 Web 服务调用失败并且调用我的“故障”事件侦听器时,如何访问 HTTP 响应正文?我可以看到原始消息,但找不到访问响应的方法。

这是我调用网络服务的方式

var connect: HTTPService = new HTTPService;
connect.url = "https://app.XYZ.org/services/code?format=xml";
connect.method = "POST";
connect.contentType = "application/x-www-form-urlencoded";
connect.showBusyCursor = true;
connect.resultFormat = "xml";
connect.addEventListener("result", retrieveResults);
connect.addEventListener("fault", retrieveResults);
var params:Object = new Object;
params.username = user;
params.password = password;
params.code = "123";
connect.request = params;
connect.send();
Run Code Online (Sandbox Code Playgroud)

和我的事件处理函数

private function retrieveResults(event:Event): void
{
  var success:Boolean = event.type == ResultEvent.RESULT;
..
}
Run Code Online (Sandbox Code Playgroud)

信息

apache-flex actionscript-3 httpservice flex4

5
推荐指数
1
解决办法
708
查看次数

使用OSGi HTTP服务启动Wicket Web应用程序

我正在尝试使用Felix实现的OSGi HTTP服务启动Wicket应用程序,因为我只是使用WicketServletwith applicationClassName参数注册服务:

props.put("applicationClassName", MainApplication.class.getName());
service = (HttpService)context.getService(httpReference);
service.registerServlet("/", new WicketServlet(), props, null);
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用Felix Whiteboard实现并将Web服务注册为Servlet一个:

props.put("alias", "/");
props.put("init.applicationClassName", MainApplication.class.getName());
registration = context.registerService(Servlet.class.getName(), new WicketServlet(), props);
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,当我使用Pax Runner和Felix(mvn package install pax:run -Dframework=felix -Dprofiles=log,config)部署它时失败,异常似乎与以下内容有关ClassLoader:

[Jetty HTTP Service] ERROR org.apache.felix.http.whiteboard - Failed to register servlet
org.apache.wicket.WicketRuntimeException: Unable to create application of class es.warp.sample.HTTPLocalGUI.MainApplication
....
....
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
....
....
Run Code Online (Sandbox Code Playgroud)

我试图导出捆绑中的所有内容,它也是如此.

最奇怪的是,如果我使用Equinox(mvn package install pax:run -Dframework=felix -Dprofiles=log,config …

osgi wicket httpservice embedded-jetty apache-felix

3
推荐指数
1
解决办法
3262
查看次数

URI中的百分比编码

我想知道如何转换URI:

%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%20%D1%8F%D0%B7%D1%8B%D0%BA
Run Code Online (Sandbox Code Playgroud)

??????? ????
Run Code Online (Sandbox Code Playgroud)

我知道urldecodePHP中的函数.我在Java(Android)中寻找相同的功能.有人能帮助我吗?谢谢.

java browser android httpservice

3
推荐指数
1
解决办法
3313
查看次数

在Flex/AS3中使用HTTPService在POST上取得进展

我正在使用带有POST操作的HTTPService来提交Base64编码文件(取自应用程序中的位图数据),但我真的可以了解POST操作的进度(例如FileReference.upload()) .

我不认为这是可能的,但如果是这样的话会很棒(通过任何方式,我都愿意改变我的设置来获得这个).

apache-flex actionscript-3 httpservice

2
推荐指数
1
解决办法
1万
查看次数

Flex:取消HTTPService.send()?

好的,我有一个只要从send()调用得到结果就HTTPService执行该dataLoaded(e:ResultEvent):void函数.

好的,如果我在前一个收到结果之前再次呼叫HTTPService.send()然后HTTPService.send()再次呼叫,我最终会反复运行dataLoaded(),这是不可取的

我想要的是如果HTTPService.send()在之前的调用之前调用它返回结果.我想取消第一个呼叫,只处理上次呼叫的结果HTTPService.send()

我希望这是有道理的.

我怎样才能做到这一点??

谢谢!!

apache-flex httpservice

2
推荐指数
2
解决办法
2185
查看次数

FileReference和HttpService浏览图片修改它然后上传它

我正在尝试做一个图像上传器,用户可以:
- 使用button.browse浏览本地文件
- 选择一个并将其保存为FileReference.
- 然后我们做FileReference.load()然后将数据绑定到我们的图像控件.
- 在我们对其进行旋转并更改图像数据之后.
- 并完成我们将其上传到服务器.

要更改图像数据,我将获得显示图像的矩阵并对其进行转换,然后重新使用新矩阵并将其绑定到我的旧图像:

private function TurnImage():void
{ 
    //Turn it
    var m:Matrix = _img.transform.matrix;
    rotateImage(m);
    _img.transform.matrix = m;
}
Run Code Online (Sandbox Code Playgroud)

现在主要的是我真的不知道如何将数据作为文件发送到我的服务器,因为它没有存储在FileReference中,FileReference中的数据是readOnly所以我们无法更改它或创建新的,所以我可以不要使用.upload();.

然后我尝试了HttpService.send,但我无法弄清楚你是如何发送文件而不是mxml的.

apache-flex upload httpservice filereference gumbo

1
推荐指数
1
解决办法
3073
查看次数

HTTPService AsyncToken和AsyncResponder示例

在哪里可以找到实现由AsyncToken和AsyncResponder异步调用的HTTPService的Flex应用程序示例?提前致谢

httpservice以一定的频率发送这样的字符串:

行号列#号#行号列#号#行号列#号#....

编辑代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="onCreationComplete()" 
xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
    import mx.rpc.remoting.RemoteObject;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.http.mxml.HTTPService;
    import mx.rpc.AsyncRequest;
    import mx.rpc.AsyncResponder;
    import mx.rpc.AsyncToken;
    import mx.collections.ArrayCollection;
    import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
    import mx.controls.AdvancedDataGrid;
    import mx.controls.Alert;
    import mx.rpc.IResponder;


    [Bindable]
    public var dataList:ArrayCollection;

    public function getResults(source:String) : ArrayCollection {
    var ac:ArrayCollection = new ArrayCollection();
    var data:Array = source.split('#');
    for (var i:int = 0; i < data.length; i += 3) {
    var dataObj:Object = {row: data[i], column: data[i+1], value: data[i+2]};     
    ac.addItem(dataObj)
    }

    return …
Run Code Online (Sandbox Code Playgroud)

apache-flex asynchronous httpresponse httpservice asynctoken

1
推荐指数
1
解决办法
1万
查看次数

通过向服务器发送10'000行XML,HTTPService非常慢

我有一个flex应用程序,允许用户创建一些内容.然后,此内容将通过xml发送回服务器:

private function saveBackXMLToServer():void {
            var params:Object = {};
            params["xml_file"] = XML_content();
            http_Service.send(params);
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是,以这种方式传输数据非常慢...... 10'000行XML需要大约20秒......如何才能做得更好?

提前致谢!

马库斯

更新:嗨,大家好,感谢您的所有评论.我试图遵循你的所有提示,但它们似乎并不容易改变.我的代码以我无法访问每个Object的方式完成,并保存它.所以我要做的是用一个xml加载swf文件,并在运行后返回整个xml.我的猜测是,没有花时间将这些行传输到Web服务器(这个任务可以快速正常完成),我发现HTTPService的send函数发生了一些事情,每个对象都必须在发送之前发生变化...

UPDATE2:我刚刚意识到这不是flex应用程序的问题,它是rails应用程序的问题.它接收700 KB字符串.我想没有办法处理这样的对象.怎么运输呢?我尝试使用文件上传但无法完成它...错误2037发生了!我会继续努力.

xml apache-flex httpservice

0
推荐指数
1
解决办法
604
查看次数