1.先列出Android端使用的library:
1 | dependencies { ... compile 'com.jakewharton:butterknife:7.0.1' compile 'com.squareup:otto:1.3.5' compile 'cn.finalteam:galleryfinal:1.4.8.4' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' compile 'com.squareup.okhttp:okhttp:2.0.0' compile 'com.github.bumptech.glide:glide:3.6.1' compile 'com.jcodecraeer:xrecyclerview:1.2.6' compile 'com.baoyz.actionsheet:library:1.1.5' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'io.reactivex:rxjava:1.0.6' compile 'io.reactivex:rxandroid:0.23.0' compile files( 'libs/fastjson-1.2.7.jar' )}
|
로그인 후 복사
Android端代码:
1 | public interface ApiService {
|
로그인 후 복사
1 | public class Client { public static String API_URL = Constant.API_URL; public static ExecutorService mExecutorService; private static ApiService instance; public static ApiService getServiceClient() { if (instance == null) { synchronized (Client. class ) { if (instance == null) { OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.setCookieHandler( new MyCookieManager()); okHttpClient.setReadTimeout(100, TimeUnit.SECONDS); okHttpClient.setConnectTimeout(100, TimeUnit.SECONDS); RestAdapter.Builder restAdapter = new RestAdapter.Builder(); restAdapter.setRequestInterceptor( new ApiHeaders()); restAdapter.setEndpoint(API_URL); restAdapter.setClient( new OkClient(okHttpClient)); restAdapter.setLogLevel(RestAdapter.LogLevel.FULL); mExecutorService = Executors.newCachedThreadPool(); instance = restAdapter.build().create(ApiService. class ); } } } return instance; } public static void stopAll() { List<Runnable> pendingAndOngoing = mExecutorService.shutdownNow(); } static class MyCookieManager extends CookieManager { @Override public void put(URI uri, Map<String, List<String>> stringListMap) throws IOException { super.put(uri, stringListMap); if (stringListMap != null && stringListMap.get( "Set-Cookie" ) != null) for (String string : stringListMap.get( "Set-Cookie" )) { String cookieValue = string.substring(0, string.indexOf( "\"; " ) + 1); if (string.contains( "A2=\"" )) {
|
로그인 후 복사
上传关键代码:
Php端代码:
其实上传成功的关键是part需要带uploadfile[] ,【 multipartTypedOutput.addPart("uploadfile[]", new TypedFile("", new File(imgPath)));】我在这个地方失败了几十次,无意中看见html网页批量上传的name属性中带了[],我就试了试,果然成功了。
代码资源下载
Paste_Image.png
Paste_Image.png
超级简单的Android Studio jni 实现(无需命令行)