我试图将对象发布到我的API但它无法正常工作。
我的API方法看起来像这样
[Route("Route is working but wanna keep this address hidden")]
[System.Web.Http.Acceptverbs("POST")]
[HttpPost]
public void Post(Comment comment)
{
db.Comments.Add(comment);
db.SaveChanges();
}
所以我有我的API和这个方法然后当我在我的Android应用程序中按下一个按钮时,我希望它发布到这个方法,但没有任何东西被发布。
我的Android应用程序中的代码
public class ConnectionPost extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... params) {
URL url = null;
try {
url = new URL("Keeping this address hidden");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
JSONObject comment = new JSONObject();
comment.put("Name","Joe");
OutputStreamWriter ap_osw= new OutputStreamWriter(conn.getOutputStream());
ap_osw.write(comment.toString());
ap_osw.flush();
ap_osw.close();
Log.d("test", "" + comment.toString());
}
catch (Exception e){
}
return "";
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
}
当我点击我的按钮时,我调用一个包含此代码的方法。
ConnectionPost send = new ConnectionPost();
send.execute();
在LogCat中我可以看到我创建的对象,但没有任何内容被发布,所以想知道我做错了什么?
很抱歉,有些事情的命名错误会在以后解决。
答案 0 :(得分:0)
你的代码对我来说很好,导致可怕的,#34;在我的机器上工作。&#34;
1)清单中有<uses-permission android:name="android.permission.INTERNET" />
吗?
2)处理异常,它将帮助您调试。
3)从服务器读取/记录响应,它将帮助您进行调试。
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while((line = reader.readLine()) != null) {
result.append(line);
}
reader.close();
in.close();
Log.d("test", result.toString());
很多次连接是配置失败而不是代码。你的代码很好。
答案 1 :(得分:0)
我修复了它:)在我的对象中我有一个DateTime字段,我试图在发布时将其设置为null,但是当然它不起作用。将其更改为DateTime.Now。