小编Art*_*ski的帖子

无休止地接收分块数据

您可能知道在HTTP标头中发送分块文件,没有内容长度,因此程序必须等待0才能理解该文件已结束.

--sample http header  
POST /some/path HTTP/1.1
Host: www.example.com  
Content-Type: text/plain  
Transfer-Encoding: chunked  
25  
This is the data in the first chunk  
8
sequence  
0
Run Code Online (Sandbox Code Playgroud)

为了接收该文件,可以使用以下代码.

ResponseHandler<String> reshandler = new ResponseHandler<String>() {
    public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {

        HttpEntity entity = response.getEntity();

        InputStream in =  entity.getContent();
        byte[] b = new byte[500];
        StringBuffer out = new StringBuffer();
        int len = in.read(b);
        out.append(new String(b, 0 , len));

        return out.toString();
    }
}; 
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我使用流媒体通道,换句话说没有0表明文件已经结束.无论如何,如果我使用这个代码,它似乎永远等待0永远不会发生.我的问题是有没有更好的方法从流通道接收分块文件?

android http chunked chunked-encoding

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

在Android.mk中按文件CPPFLAGS

我正在开发一个Android.mk文件,对于单个模块,其中一个文件需要不同的CPPFLAGS; 即,它需要-frtti启用,而其他人需要Android默认的-fno-rtti.

显而易见的解决方案是特定目标的变量,但奇怪的是它们似乎不会影响编译,即使有一些摆弄以确保值应该在正确的时间固定.

这是我Android.mk的摘录(名称已更改以保护我):

LOCAL_MODULE := foo_bar

LOCAL_SRC_FILES := \
    foo_bar.cpp \
    foo_baz.cpp

my_intermediates:= $(local-intermediates-dir)/foo_baz.o
$(my_intermediates): LOCAL_CPPFLAGS := -frtti
Run Code Online (Sandbox Code Playgroud)

我试图简单地做foo_baz.o:代替$(my_intermediates),并试图替换+=:=没有变化.

那么,是否有特定于Android的方法来覆盖特定源文件的CPPFLAGS(或CFLAGS)?

(在这种情况下,我使用的是Eclair Android源代码,虽然它可能适用于NDK;请参阅下面的答案.)

android makefile android-ndk android-source

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