我发现了以下要在Android应用中使用的bash脚本。尽管花了一段时间开发应用程序,我几乎没有bash / http体验,也不知道从哪里开始。
e.g。登录功能如下:
curl \
--location \
--cookie "$COOKIES" \
--cookie-jar "$COOKIES" \
--output /dev/null \
"http://connect.garmin.com/signin" && \
curl \
--location \
--cookie "$COOKIES" \
--cookie-jar "$COOKIES" \
--data "login=login&login%3AloginUsernameField=$USER&login%3Apassword=$PASSWORD&login%3AsignInButton=Sign+In&javax.faces.ViewState=j_id1" \
--output - \
"https://connect.garmin.com/signin" |\
curl如何对应Android的HttpClient命令等?
答案 0 :(得分:1)
Curl是一个程序,允许您(通过命令行)下载http和https请求,而无需通过浏览器。它类似于wget命令。
同时,Android的HttpClient不是命令,甚至不是函数。它是一个基于类的API,允许您执行http请求。
我建议您浏览Curl手册页(我链接到的),看看您是否可以看到传递给Curl的各种参数。此命令两次匹配相同的URL "http://connect.garmin.com/signin"
。它第一次只是检查它是否可访问。如果是,它将运行第二个curl
命令。以下是各种参数的含义:
key=value
,这是要使用的cookie。/dev/null
是一个可以折腾你不想要的东西的地方。 -
表示将网页打印到屏幕上。基本上,第一个curl
命令正在访问Garmin登录页面(http://connect.garmin.com/signin)。它正在丢弃数据。这样做只是为了查看网页是否实际启动。
第二个curl
命令正在登录。--data
行是发送到网页的数据。它假装您已在登录页面上填写登录表单,并向Garmin发送您的用户名和密码。该页面的输出作为http网页输出进入终端(我打赌正在解析你想要的信息)。
你说你曾经是Android开发人员一段时间,所以我假设您了解Android编程并了解Android API的工作原理。我不是Android开发人员,但我查看了AndroidHttpClient API documentation,看起来并不复杂。基本上,您需要创建一个可以向http://connect.garmin.com/signin
发送请求以确认其已启动并正在运行的对象,如果是,则向https://connect.garmin.com/signin
发送另一个请求以进行登录。您发送的数据在--data
参数中。