我试图做POST与HttpURLConnection(我需要使用这种方式,不能使用HttpPost),我想参数添加到连接如
post.setEntity(new UrlEncodedFormEntity(nvp));
Run Code Online (Sandbox Code Playgroud)
哪里
nvp = new ArrayList<NameValuePair>();
Run Code Online (Sandbox Code Playgroud)
有一些数据存储在.我找不到如何将此添加ArrayList到我HttpURLConnection这里的方法:
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
https.setHostnameVerifier(DO_NOT_VERIFY);
http = https;
http.setRequestMethod("POST");
http.setDoInput(true);
http.setDoOutput(true);
Run Code Online (Sandbox Code Playgroud)
这种尴尬的https和http组合的原因是不需要验证证书.但这不是问题,它可以很好地发布服务器.但是我需要用论据发帖.
有任何想法吗?
重复免责声明:
回到2012年,我不知道如何将参数插入到HTTP POST请求中.我一直在坚持,NameValuePair因为它是在教程中.这个问题可能看似重复,但是,我的2012年自我阅读了其他问题并且它没有使用NameValuePair.事实上,它并没有解决我的问题.
自API级别22以来,Android已经弃用了Apache模块,所以我的问题是,我如何使用,例如 HttpResponse来自Apache库,而不是Android SDK?问题是两个包都是一样的.
但是,例如,HttpGet没关系,因为它HttpGetHC4在Apache中被调用.
随着Android 5.1的发布,看起来所有Apache http的东西都被弃用了.看文档是没用的; 他们都说
This class was deprecated in API level 22.
Please use openConnection() instead. Please visit this webpage for further details.
这是第一次阅读它时没关系,但是当每个被弃用的类都说明了这一点时,它没那么有用.
总之,什么是类的替代喜欢HttpEntity,特别是StringEntity和MultipartEntity?我替换BasicNameValuePair了我自己的Android Pair<T, S>类实现,它看起来URLEncoder.encode是一个很好的替代品URLEncodedUtils,但我不知道该怎么做HttpEntity.
编辑
我决定重新编写网络内容.要尝试使用Retrofit和OkHttp
编辑
认真看看将你的通话和东西转换为Retrofit.很漂亮.我很高兴我做到了.有一些障碍,但它很酷.