AndroidはCookiesを取得し、PHPSESSID(OkHttp;HttpClient;Afinal)を永続化
会社のバックグラウンドはPHPで実現されているので、安全のために毎回PHPSESSIDに送信して検証する必要がある.
以前のプロジェクトで使用したafinalのFinalHttpモジュールでデータを要求
https://github.com/yangfuhai/afinal
これは本質的にパッケージされたhttpclientなので、取得方法はhttpclientと似ています.
.addHeader("Cookie", "PHPSESSID="+ToolsUser.getPhpsessid())
以前のプロジェクトで使用したafinalのFinalHttpモジュールでデータを要求
https://github.com/yangfuhai/afinal
これは本質的にパッケージされたhttpclientなので、取得方法はhttpclientと似ています.
AjaxParams params = new AjaxParams();
params.put("x", "xxx");
params.put("xx", "xx");
new FinalHttp().get("url", params, new AjaxCallBack() {
@Override
public void onSuccess(String t) {
super.onSuccess(t);
DefaultHttpClient dh = (DefaultHttpClient) http.getHttpClient();
CookieStore cookieStore = dh.getCookieStore();
List cookies = cookieStore.getCookies();
for (int i = 0, len = cookies.size(); i
, HttpClient cookies ,
FinalHttp DefaultHttpClient , .
cookies
https://github.com/fantouch/hack10086/commit/0a8d77fdaef1a1f71d579f00366b3e4f818e90a6
PHPSESSID ,
new FinalHttp().addHeader("Cookie", "PHPSESSID=" + phpsessid)
これにより、ユーザのログイン を することができる.
その Android Studioに してSDKをアップグレードし、httpclientを すのはもう れの になった.....
ネットワークリクエストをOkHttpに
ネット で くのcookiesを する を して、とても があって、すべて して した で、 は じで、その 、 にすべて えません...new Thread(new Runnable() {
@Override
public void run() {
try {
String t = run1("url?x=xxx&xx=xx");
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
private String run1(String url) throws IOException {
Request request = new Request.Builder().url(url).build();
Response response = client.newCall(request).execute();
String string = response.body().string();
return string;
}
private OkHttpClient client = new OkHttpClient.Builder().cookieJar(new CookieJar() {
private final HashMap> cookieStore = new HashMap<>();
@Override
public void saveFromResponse(HttpUrl url, List cookies) {
if (cookies != null) {
for (int i = 0, len = cookies.size(); i loadForRequest(HttpUrl url) {
List cookies = cookieStore.get(url);
return cookies != null ? cookies : new ArrayList();
}
}).build();
の がどこで たか れました.ありがとうございます.
このように した も、リクエストのたびに.addHeader("Cookie", "PHPSESSID="+phpsessid)
しておくと、 に つ のネットワークリクエストフレームワークが されます