【发布时间】:2015-12-14 02:36:43
【问题描述】:
我写了一个应用程序,用户必须用信息填写一些文本字段 比如名字,年龄......当他点击一个按钮时,数据被发送到我的 api 控制器,其中 put 方法将数据保存在数据库中。
这是一种工作示例,我不知道如何将 json 发送到我的控制器。(我研究了几天但没有任何效果) 所以我现在要做的是用我的数据编写一个符合 url 的字符串 所以在我的控制器中,我从字符串中读出了我需要知道的内容。 这是一个非常糟糕的解决方案!(我不能做空格或斜线等等......)
为了发送我的 UserData,我构建了一个 AsyncTask(当我没有收到异常时)
class SendUserTask extends AsyncTask<String, Void, String>{
public AsyncResponse delegate = null;
User user;
@TargetApi(Build.VERSION_CODES.KITKAT)
protected String doInBackground(String... urls) {
try {
String r = sendUser("name" + user.getName() + "street" + user.getStreet());
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public void setUser(User u){user = u;}
public static String sendUser(String userData) throws Exception {
URL url = new URL("http://my-address:port/api/users/"+ userData);
HttpURLConnection c =(HttpURLConnection) url.openConnection();
c.setRequestMethod("PUT");
BufferedReader in = new BufferedReader(new InputStreamReader(
c.getInputStream()));
String inputLine;
String result = "";
while ((inputLine = in.readLine()) != null)
result = inputLine;
in.close();
return result;
}
}
当我只想发送一个 id 或获取一些东西时,这个方法可以正常工作!
我的控制器是默认的 api 控制器 这是我的放置方法:
public String Put(string id, [FromBody]string value){
//stuff
}
请任何人帮忙!?!
【问题讨论】:
-
尝试考虑好的android库-Retrofit也许它会帮助你,让你的生活更轻松
-
我还没有在这里看到任何包含 json 的 json 对象或字符串。
sendUser("name" + user.getName() + "street" + user.getStreet());行也不能分配给标准 html 请求。您的示例错误,请尝试考虑 more example 并了解如何将 json 对象从 android 发送到服务器 -
@OlegDokuka 那不是我的 Json,我只是在构建一个字符串,以便我可以将它添加到我的 url 中。我建议用 json 发送它,我知道如何编写 json。