ここで私はアンドロイドに変換するアンドロイドアプリケーションを作業しています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
。