【问题标题】:Android post a JSON ObjectAndroid 发布一个 JSON 对象
【发布时间】:2014-08-25 12:03:40
【问题描述】:

我想在我的数据库 (RDF) 中发布一个 json,我的 json 是正确的,但我无法发送它 这是我的代码:

我想将此 json 发布到我的数据库帮助中 ////////

HttpPost httppost=new HttpPost("http://www.hds.utc.fr/memorae/pr/api/swars/note");

         try {
             // JSON data:
            jsonA.put("index", "datjsonArray");//datjsonArray

                jsonA.put("sharingspace","datjsonArray1" );//datjsonArray1
                jsonA.put("content", "test");
                jsonA.put("title", "test");
                jsonA.put("aurhor", "amc2:userAPIConcept53a07a9a1758d");
                jsonA.put("distributor","datjsonArray2 ");//datjsonArray2
                jsonA.put("date", "dat");
                jsonA.put("type", "note"); 


             String json = jsonA.toString();



             StringEntity se = new StringEntity(json);  
             se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
             Log.i("se", ""+se);
             httppost.setEntity(se);
             HttpClient httpclient = new DefaultHttpClient();
             HttpResponse response = httpclient.execute(httppost);

             if(response!=null){
                 InputStream in = response.getEntity().getContent(); 
             }

         } catch(Exception e) {
             e.printStackTrace();
             Log.i("Error", "Cannot Estabilish Connection");
         }

错误

07-05 02:10:06.410: E/NomDeMaClasse(2012): Erreur à tel endroit 07-05 02:10:06.410: E/NomDeMaClasse(2012): android.os.NetworkOnMainThreadException 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 java.net.InetAddress.lookupHostByName(InetAddress.java:385) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 java.net.InetAddress.getAllByName(InetAddress.java:214) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at com.example.test.MainActivity$1.onClick(MainActivity.java:116) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.view.View.performClick(View.java:4438) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.view.View$PerformClick.run(View.java:18422) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.os.Handler.handleCallback(Handler.java:733) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.os.Handler.dispatchMessage(Handler.java:95) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.os.Looper.loop(Looper.java:136) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 android.app.ActivityThread.main(ActivityThread.java:5017) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 java.lang.reflect.Method.invokeNative(Native Method) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 java.lang.reflect.Method.invoke(Method.java:515) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 07-05 02:10:06.410: E/NomDeMaClasse(2012): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 07-05 02:10:06.410: E/NomDeMaClasse(2012): at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 你得到一个expcetion?
  • 请发布例外,如果你得到一个。
  • 我没有任何错误或异常
  • 我想创建一个这样的 json : { "type" : "note", "index" : [ "Mandrin_Automatique", "Mandrin_Manuel" ], "distributor" : [ "amc2:userAPIConcept5388541197bcc " ], "author" : "amc2:userAPIConcept5388541197bcc", "content" : "Test", "sharingspace" : [ "ate:spaceAPIConcept539181b3a0d8d", "ate:spaceAPIConcept538888ab4848c" ], "date" : "04\/07\/ 2014", "title" : "test juillet" } 并发送到我的数据库 (url) 你可以帮助我 plz
  • 您没有收到错误消息?好吧,您没有阅读您的 php 脚本回显的内容。您只打开 InputStream in 而不是从该流中读取。添加从 strem 读取的代码以获取回显文本。显示并记录文本。它将包含错误信息。

标签: android json http-post androidhttpclient


【解决方案1】:

改变这两行

json1.put("index", "datjsonArray");//datjsonArray
jsonA.put("aurhor", "amc2:userAPIConcept53a07a9a1758d");

jsonA.put("index", "datjsonArray");//datjsonArray
jsonA.put("author", "amc2:userAPIConcept53a07a9a1758d");

您将不会再收到来自 php 的错误消息。只有很多 odbc 语法错误消息。可能的原因:"datjsonArray" 应该是datjsonArray

但是...要查看消息,您必须通过从InputStream in 读取它们来从 php 脚本中获取回声。

【讨论】:

  • 什么意思?你到底想知道什么?您是否应用了建议的更改?它改变了一切吗?你为什么不报告?
  • 我的 wcript php 可以与 ios 一起使用,但我认为我的代码 android 有问题
  • 再一次,你的反应不是重点。请回答我所有的问题并对我所有的 cmets 做出反应。在这样的论坛上应该是这样的。
  • 我做了所有的改变,我在 php 中没有错误,但我无法连接到我的三重商店
  • 所有的笔记都是用iphone创建的
【解决方案2】:

你有一个严重的例外

NetworkOnMainThreadExeption

将您的代码放在 AsyncTask 或线程中。 AsyncTask 是最简单的。 您可以在此站点上找到许多示例。

如果你之前只发布了 logcat...

【讨论】:

    【解决方案3】:

    我有这个错误:我有这个错误 olso :07-05 23:10:06.290: E/SoundPool(383): error loading /system/media/audio/ui/Effect_Tick.ogg 07-05 23:10:06.300:E/SoundPool(383):错误加载 /system/media/audio/ui/Effect_Tick.ogg 07-05 23:10:06.300:E/SoundPool(383):错误加载 /system/media/audio/ui/Effect_Tick.ogg 07-05 23:10:06.300:E/SoundPool(383):错误加载 /system/media/audio/ui/Effect_Tick.ogg 07-05 23:10:06.340:E/SoundPool(383):错误加载 /system/media/audio/ui/Effect_Tick.ogg 07-05 23:10:06.410:E/SoundPool(383):错误加载 /system/media/audio/ui/KeypressStandard.ogg 07-05 23:10:06.460:E/SoundPool(383):错误加载 /system/media/audio/ui/KeypressSpacebar.ogg 07-05 23:10:06.460:E/SoundPool(383):错误加载 /system/media/audio/ui/KeypressDelete.ogg 07-05 23:10:06.500:E/SoundPool(383):错误加载 /system/media/audio/ui/KeypressReturn.ogg 07-05 23:10:06.530:E/SoundPool(383):错误加载 /system/media/audio/ui/KeypressInvalid.ogg

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多