android - 数据未发布到服务器
问题描述
我试图让我的应用程序将用户的输入上传到我的合作伙伴设置的数据库中。我们使用 HttpUrlConnection 引用了对服务器的发布请求 ,尤其是https://www.youtube.com/watch?v=wFrfgMu1Dyc,但我们仍然无法将数据更新到服务器。除此以外,该应用程序运行良好。我们在 Paramsize 上遇到一些错误,并且附加代理失败。不知道如何解决,因为我在任何地方都找不到提示。这是Java
package com.example.rachael.benchlocker;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
public class AddPackage extends AppCompatActivity {
EditText tracking;
String TrackingNumber;
Button pack_btn;
Integer len;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_package);
tracking = (EditText) findViewById(R.id.tracking);
pack_btn=(Button)findViewById(R.id.pack_btn);
pack_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TrackingNumber = tracking.getText().toString();
len= TrackingNumber.length();
new
UpdatePack().execute("http://spinner.homelinux.net:51532/api/barcodes");
}
});
}
public class UpdatePack extends AsyncTask<String, Void, String> {
public UpdatePack(){
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String...params) {
StringBuilder stringBuilder= new StringBuilder();
try{
URL url = new URL(params[0]);
HttpURLConnection httpURLConnection =(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setConnectTimeout(10000);
httpURLConnection.setReadTimeout(15000);
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
OutputStream outputStream=httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
bufferedWriter.write(TrackingNumber,0,len);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
httpURLConnection.connect();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while ((line = bufferedReader.readLine()) !=null){
stringBuilder.append(line).append("\n");
}
} catch (MalformedURLException e) {
e.printStackTrace();
;
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.w("Result",s);
Toast toast = Toast.makeText(getApplicationContext(), "Package Added",
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
}
和错误
06-05 09:43:11.495 3442-3471/com.example.rachael.benchlocker E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
06-05 09:43:13.954 3442-3442/com.example.rachael.benchlocker E/ActivityThread: Attaching agent failed: /data/data/com.example.rachael.benchlocker/libperfa_x86_64.so=/data/local/tmp/perfd/agent.config
谢谢!
解决方案
推荐阅读
- android - Android Studio 给出关于 JDK 位置的警告
- javascript - 如何使用 Google 登录检测用户是否在页面加载时登录
- python - Byzantine Consensus Randomized - Monte Carlo Implementation with matrix for value sending
- android - 如何在android中使用Firebase MLKit进行文本检测时制作平滑的覆盖界面
- ios - 从类类型中获取类对象
- javascript - ExpressJs 等待任务或超时
- reactjs - 如何在滚动(虚拟/无限滚动)上延迟加载反应组件?
- android - 为具有 Clean Architecture、MVVM 和 Koin 的数据源提供上下文的正确方法是什么?
- javascript - 无法从“App.js”(Expo CLI)解析“react”
- mysql - 如何修复 root 帐户获取“错误 1130 (HY000): Host ... is not allowed to connect to this MariaDB server”