组织。阿帕奇。Android 5.1中不推荐使用http类和AndroidHttpClient类。这些类不再被维护,您应该尽快将使用这些API的任何应用程序代码迁移到URLConnection类。
https://developer.android.com/about/versions/android-5.1.html#http
它建议切换到URLConnection类。没有足够的文档来准确记录如何从应用程序进行后调用。
目前我正在使用此
public void postData()
{
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try
{
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
}
catch (IOException e)
{
// TODO Auto-generated catch block
}
}
我如何使用UrlConnections实现这一点?
使用此httpmime-4.1-beta1。jar请尝试以下代码:-
String url = "http://www.yoursite.com/script.php";
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost postMethod = new HttpPost(url);
MultipartEntity entity = new MultipartEntity();
try
{
entity.addPart("id", new StringBody("123"));
entity.addPart("stringdata", new StringBody("AndDev is Cool!"));
postMethod.setEntity(entity);
HttpResponse response;
response = client.execute(postMethod);
String result = EntityUtils.toString(response.getEntity());
JSONArray ja = new JSONArray(result);
// ITERATE THROUGH AND RETRIEVE CLUB FIELDS
int n = ja.length();
for (int i = 0; i < n; i++)
{
// GET INDIVIDUAL JSON OBJECT FROM JSON ARRAYJSONObject jo = ja.getJSONObject(i);
// RETRIEVE EACH JSON OBJECT'S FIELDS
String status = jo.getString("status");
// Log.e("status",status);
}
}
catch (Exception e)
{
e.printStackTrace();
}
用凌空抽射怎么样?与URLConnection相比,这似乎是一个非常好的选择。而且它在请求排队方面有很多好处。
考虑使用HttpUrlConnection共享我的代码
public String performPostCall(String requestURL,
HashMap<String, String> postDataParams) {
URL url;
String response = "";
try {
url = new URL(requestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line=br.readLine()) != null) {
response+=line;
}
}
else {
response="";
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
............
private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException{
StringBuilder result = new StringBuilder();
boolean first = true;
for(Map.Entry<String, String> entry : params.entrySet()){
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
return result.toString();
}
问题内容: 我只是迁移到Spring MVC 版本,但突然在Eclipse STS中将WebMvcConfigurerAdapter标记为已弃用 我该如何删除! 问题答案: 从Spring 5开始,你只需要实现接口 这是因为Java 8在接口上引入了覆盖该类功能的默认方法
我只是迁移到Spring mvc版本,但突然在eclipse STS WebMvcConfigrerAdapter中被标记为不建议使用 我怎么才能把它拿走!
问题内容: 今天,我决定将我的android应用程序从Java转换为Kotlin!:)但是,当我输入以下内容时,我感到非常惊讶: 然后Android Studio告诉我:“’getActionView(MenuItem!):View!’ 已弃用。Java中已弃用“ 因此,在问您解决方案之前,我先问谷歌解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()”。 所以我像这样
目前我正在开发一个带有三个菜单项的底部导航栏的应用程序。我曾使用来单击项目。但现在我面临的问题是该方法已贬值。 应用程序语言:Java 问题:“setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView.OnNavigationItemSelectedLi
由于API 27已弃用。对此最好的替代方案是什么? 在我的例子中,我知道需要使用之类的东西,但我不知道在我的代码中这需要去哪里。 我在班上得到了这些进口货: 但是 被划掉了。
我一直在开发一个使用Google Drive API的Android应用程序。它最初是从这里的quickstart示例构建的。API调用的简化序列(此处未显示正确的错误处理)是: 它一直运行良好,我正准备发布我的应用程序。但是,在驱动器API更新之后,我突然收到一个警告 方法usingOAuth2(Context,String,String...)GoogleAccountCredential是不