1

ここで私はアンドロイドに変換するアンドロイドアプリケーションを作業していますdrupal siteここでは、アンドロイドからnative application.作成するときに問題に直面していますdrupal node。要するに、それについてはわかりません。しかし、以下を試しました。どこが間違っているか教えてください。別の解決策があります。

今回は、別の問題にも直面しています。postIdea クラスにはAsyncTask、json からデータをロードし、送信ボタンを押す前にスピナーに追加する別の 2 つ (カテゴリとファウンダー) があります。その作業は完璧です。しかし、送信ボタンを押すと、前の(カテゴリとファウンダー)AsyncTaskも呼び出されます。送信ボタンを押した後、カテゴリとファウンダーのメソッドを再度呼び出すことはありません。

私の場合、ノードの drupal 受け入れ形式:

{
 "type":"idea",
 "title":"idea one",
 "field_story_idea":[
 {
"value":"test"          // test is title value
}
],
"field_founder_profile_refrence":[
 {
   "nid":"111"             // 111 is founder value
 }
],
"field_idea_budget":[
{
 "value":"2"             // 2 is budget value
 }
 ],
"field_idea_details":[
{
 "value":"AAAAAAAA"     //  AAAAAAAA is idea details value
}
],
"taxonomy":{
  "6":{
"tid":"6"         // 6 is the category value
 }
}
}

ここで、すべての値を取得し、JSON format(上記の表示に従って) に変換します。特定のデータをサーバーに渡すと、ステータス コード 200 が表示されますが、次のようなエラーも表示されます。

    Response from post  idea => <br /><b>Fatal error</b>:  Cannot unset string offsets in <b>/var/aegir/hostmaster-HEAD/profiles/default/modules/cck/includes/content.node_form.inc</b> on line <b>60</b><br />

そして、すべてのデータを 1 つの jsonobject に結合してサーバーに渡すと、エラー 401 ステータス コードが表示され、次のようなエラーも表示されます。

 Invalid use of SingleClientConnManager: connection still allocated.
 W/SingleClientConnManager( 1212): Make sure to release the connection before allocating another one.

post_idea.class

public class Post_Idea extends AsyncTask<Void, Void, Void> {

    String strResponse1;
    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();

        pgb.setVisibility(View.VISIBLE);
    }

    @Override
    public Void doInBackground(Void... params) {
        // TODO Auto-generated method stub
        String url = "URL HERE...";

        //String strResponse;
        try {

            strResponse1 = util.makeWebForPostIdea(url,title,spinnercategoryIndexId, spinnerFounderIndexId,
                    story_bhnd_idea,idea_dtls, spinnerBudgetId);

            System.out.println("=========> Response from post  idea => "
                    + strResponse1);

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        pgb.setVisibility(View.GONE);

    }
}

ユーティリティ クラス

  public static String makeWebForPostIdea(String url, String title,int spinnercategoryIndexId, int spinnerFounderIndexId, String story_bhnd_idea, String idea_dtls,int spinnerBudgetId) throws JSONException
   {

         HttpPost post = new HttpPost(url);

             List<NameValuePair> params = new ArrayList<NameValuePair>();


            // For the Founder and all other fields covert the json to the stringer

            JSONStringer jsonstringerFounder = new JSONStringer().array().object().key("nid").value(""+spinnerFounderIndexId).endObject().endArray();
            JSONStringer jsonstringerstoryBhndIdea = new JSONStringer().array().object().key("value").value(""+story_bhnd_idea).endObject().endArray();
            JSONStringer jsonstringerIdeaDetails = new JSONStringer().array().object().key("value").value(""+idea_dtls).endObject().endArray();
            JSONStringer jsonstringerBudjet = new JSONStringer().array().object().key("value").value(""+spinnerBudgetId).endObject().endArray();
                JSONStringer jsonstringercategory1 = new JSONStringer().object().key(""+spinnercategoryIndexId).object().key("tid").value(""+spinnercategoryIndexId).endObject().endObject();


            JSONStringer combineallnode123 = new JSONStringer().object().key("type").value("idea").key("title").value(title).key("field_story_idea").
                    value(jsonstringerstoryBhndIdea).key("field_founder_profile_refrence").value(jsonstringerFounder).
                    key("field_idea_budget").value(jsonstringerBudjet).key("field_idea_details").
                    value(jsonstringerIdeaDetails).key("taxonomy").value(jsonstringercategory1).endObject();

           params.add(new BasicNameValuePair("cheerfoolz",combineallnode123.toString()));
          /* params.add(new BasicNameValuePair("type","idea"));
             params.add(new BasicNameValuePair("title",title));
             params.add(new BasicNameValuePair("field_story_idea", jsonstringerstoryBhndIdea.toString()));
             params.add(new BasicNameValuePair("field_founder_profile_refrence",jsonstringerFounder.toString()));
             params.add(new BasicNameValuePair("field_idea_budget", jsonstringerBudjet.toString()));
             params.add(new BasicNameValuePair("field_idea_details",jsonstringerIdeaDetails.toString()));
             params.add(new BasicNameValuePair("taxonomy",jsonstringercategory1.toString())); 
            */             

        UrlEncodedFormEntity formEntity = null;
            try {
                            formEntity = new UrlEncodedFormEntity(params);
            } catch (UnsupportedEncodingException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
            }

         post.setEntity(formEntity);

            try {

                    HttpResponse response = client.execute(post);

                    int statusCode = response.getStatusLine().getStatusCode();
                    System.out.println("=========> statusCode from the postidea util.java=====> "+statusCode);        
                    if (statusCode == HttpStatus.SC_OK)
                    {
                            HttpEntity entity = response.getEntity();
                            //String html = EntityUtils.toString(entity);
                            InputStream is = entity.getContent();

                            return iStream_to_String(is);
                    }
                    else
                    {
                            return "Hello This is status ==> :"+String.valueOf(statusCode);
                    }
            } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }


            }

            return null;

    }

編集:

ここでperticular、サーバーに値を渡すと、値が表示されますstatus code 200が、ノードにエントリがありませんdrupal site

4

0 に答える 0