android - 我想从android将json文件发送到我的服务器我应该在doInBackground方法中做什么?
问题描述
我的后端是 laravel,我想将 json 文件发送到特定的路线我已经创建了我的 json plz 帮助
public class MainActivity extends AppCompatActivity {
EditText usernameview;
EditText passwordview;
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usernameview = (EditText)findViewById(R.id.username) ;
passwordview = (EditText)findViewById(R.id.password) ;
Button login = (Button) findViewById(R.id.loginid);
}
public void senddatatoserver(View v) {
String username= usernameview.getText().toString();
String password = passwordview.getText().toString();
JSONObject login = new JSONObject();
try {
login.put("username",username);
login.put("password",password);
} catch (JSONException e) {
e.printStackTrace();
}
if (login.length() > 0) {
new SendDataToServer().execute(String.valueOf(login));
}
}
这是我发送数据的课程我只想知道我应该在 doinbackground 方法中写什么
class SendDataToServer extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... params) {
}
@Override
protected void onPostExecute(String s) {
}
}
解决方案
您可以使用 volley 发送请求
StringRequest stringRequest = new StringRequest(Request.Method.POST, YOUR_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
for (int i = 0; i < response.length(); i++) {
JSONObject json; // convert String to JSONObject
try {
json = new JSONObject(response);
JSONArray jsonArray = json.getJSONArray("data");
lyric_string = jsonArray.getJSONObject(0).getString("song_lyric");
artist_string = jsonArray.getJSONObject(0).getString("song_artist");
//album_string = jsonArray.getJSONObject(0).getString("song_album");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//error message
dismissDialog();
lyric.setText("Sorry No Lyric Found");
lyric.setVisibility(View.VISIBLE);
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("song_name", "A song Name");
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
推荐阅读
- java - 在时区的日期时间不明确的情况下抛出异常?
- angular - 为什么Angular Material源代码中的这一行有`|| 空`?
- xamarin - Xamarin.Forms:网格单元格可以包含多个标签吗?
- android - 如何禁用使用 Flutter 1.0 在 Google 地图中点击标记时出现的导航按钮?
- c# - 编译器错误消息:CS1513:} 预期如果是瀑布
- android - 当应用程序处于后台时,活动和片段会发生什么
- angular - 为什么我在写第一个字母时会失去输入的焦点?
- notepad++ - 如何删除notepd ++中的特定行
- php - Codeigniter:如何使模型代码可重用?
- java - 多模块项目中的 Bean