curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。因此将其移植到android平台使用。 使用方法也非常之简单,在Android.mk文件中简单配置一下,下面给出一部分代码供参考。
然后编辑测试代码:
另外附上一个Google的Protobuf库。protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 libprotobuf_static 用法同curl库是一样的。
LOCAL_PATH := $(call my-dir) BOOST_VERSION := 1_55 PROJECT_ROOT := $(LOCAL_PATH) BOOST_INCLUDE_PATH := D:/boost/boost/include/boost-1_55 BOOST_LIB_PATH := D:/boost/boost/lib GOOGLE_INCLUDE_PATH := D:/boost/boost CURL_INCLUDE_PATH := D:/boost/boost/curl include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_MODULE_FILENAME := test LOCAL_CFLAGS += -std=c++11 LOCAL_LDFLAGS += -L$(BOOST_LIB_PATH) -lboost_system-gcc-mt-$(BOOST_VERSION) -lboost_thread-gcc-mt-$(BOOST_VERSION) -lprotobuf_static -lgnustl_static -lcurl -llog LOCAL_C_INCLUDES:= $(BOOST_INCLUDE_PATH) LOCAL_C_INCLUDES+= $(GOOGLE_INCLUDE_PATH) LOCAL_C_INCLUDES+= $(CURL_INCLUDE_PATH) LOCAL_SRC_FILES := com_jni_test.c include $(BUILD_SHARED_LIBRARY) $(call import-add-path,$(LOCAL_PATH))
然后编辑测试代码:
JNIEXPORT jint JNICALL Java_curltest_test_JniTest_curlInit (JNIEnv *env, jobject obj) { LOGE("Java_dingran_curltest_test_JniTest_curlInit in..."); CURL *curl; CURLcode res; // 接受返回的内容,用于打印出来看 std::string content; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Post_Response); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content); res = curl_easy_perform(curl); if (0!=res) { LOGD("curl error: %dn", res); } LOGD("curl error: %dn", res); LOGD("curl content = %s n", content.c_str()); curl_easy_cleanup(curl); } curl_global_cleanup(); LOGE("Java_dingran_curltest_test_JniTest_curlInit exit..."); return 0; }
另外附上一个Google的Protobuf库。protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 libprotobuf_static 用法同curl库是一样的。
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2305
- 用户1336
- 访客11459884
每日一句
Loving helps grow; liking just takes.
爱助生长,喜欢只懂索取。
爱助生长,喜欢只懂索取。
新会员