Titanium HTTPClient不会返回完整响应

时间:2017-01-20 17:16:58

标签: json get httpclient response appcelerator-titanium

我在Appcelerator Titanium中遇到HTTPClient问题。 我正在使用它来获取以下端点的GET请求:

https://rxnav.nlm.nih.gov/REST/interaction/list.json?rxcuis=5640+53694

它应该返回这样的响应:

{  
   "nlmDisclaimer":"It is not the intention of NLM to provide specific medical advice, but rather to provide users with information to better understand their health and their medications. NLM urges you to consult with a qualified physician for advice about medications.",
   "userInput":{  
      "sources":[  
         ""
      ],
      "rxcuis":[  
         "5640",
         "53694"
      ]
   },
   "fullInteractionTypeGroup":[  
      {  
         "sourceDisclaimer":"DrugBank is intended for educational and scientific research purposes only and you expressly acknowledge and agree that use of DrugBank is at your sole risk. The accuracy of DrugBank information is not guaranteed and reliance on DrugBank shall be at your sole risk. DrugBank is not intended as a substitute for professional medical advice, diagnosis or treatment..[www.drugbank.ca]",
         "sourceName":"DrugBank",
         "fullInteractionType":[  
            {  
               "comment":"Drug1 (rxcui = 53694, name = nimesulide, tty = IN). Drug2 (rxcui = 5640, name = Ibuprofen, tty = IN). Drug1 is resolved to nimesulide, Drug2 is resolved to Ibuprofen and interaction asserted in DrugBank between Nimesulide and Ibuprofen.",
               "minConcept":[  
                  {  
                     "rxcui":"53694",
                     "name":"nimesulide",
                     "tty":"IN"
                  },
                  {  
                     "rxcui":"5640",
                     "name":"Ibuprofen",
                     "tty":"IN"
                  }
               ],
               "interactionPair":[  
                  {  
                     "interactionConcept":[  
                        {  
                           "minConceptItem":{  
                              "rxcui":"53694",
                              "name":"nimesulide",
                              "tty":"IN"
                           },
                           "sourceConceptItem":{  
                              "id":"DB04743",
                              "name":"Nimesulide",
                              "url":"http://www.drugbank.ca/drugs/DB04743#interactions"
                           }
                        },
                        {  
                           "minConceptItem":{  
                              "rxcui":"5640",
                              "name":"Ibuprofen",
                              "tty":"IN"
                           },
                           "sourceConceptItem":{  
                              "id":"DB01050",
                              "name":"Ibuprofen",
                              "url":"http://www.drugbank.ca/drugs/DB01050#interactions"
                           }
                        }
                     ],
                     "severity":"N/A",
                     "description":"The risk or severity of adverse effects can be increased when Ibuprofen is combined with Nimesulide."
                  }
               ]
            }
         ]
      }
   ]
}

相反,使用钛HTTPClient,我只得到了回应:

{  
   "nlmDisclaimer":"It is not the intention of NLM to provide specific medical advice, but rather to provide users with information to better understand their health and their medications. NLM urges you to consult with a qualified physician for advice about medications.",
   "userInput":{  
      "sources":[  
         ""
      ],
      "rxcuis":[  
         "5640+53694"
      ]
   }
}

发出请求的代码如下:

var client = Ti.Network.createHTTPClient({

        onload: function() {
            console.log(this.responseText);
            var json = JSON.parse(this.responseText);
            console.log(json);
        },

        onerror: function() {
            console.log(this.responseText);
        }

    });

    var url = "https://rxnav.nlm.nih.gov/REST/interaction/list.json?rxcuis=5640+53694";
    client.open("GET", url);
    client.setRequestHeader("Accept", "application/json");
    client.send();

我也试过返回xml而不是json但是它是一样的,只返回响应的第一部分。关于如何解决这个问题的任何线索?

1 个答案:

答案 0 :(得分:0)

我刚刚运行了你的代码,似乎对我工作正常:

[INFO]  {"nlmDisclaimer":"It is not the intention of NLM to provide specific medical advice, but rather to provide users with information to better understand their health and their medications. NLM urges you to consult with a qualified physician for advice about medications.","userInput":{"sources":[""],"rxcuis":["5640","53694"]},"fullInteractionTypeGroup":[{"sourceDisclaimer":"DrugBank is intended for educational and scientific research purposes only and you expressly acknowledge and agree that use of DrugBank is at your sole risk. The accuracy of DrugBank information is not guaranteed and reliance on DrugBank shall be at your sole risk. DrugBank is not intended as a substitute for professional medical advice, diagnosis or treatment..[www.drugbank.ca]","sourceName":"DrugBank","fullInteractionType":[{"comment":"Drug1 (rxcui = 53694, name = nimesulide, tty = IN). Drug2 (rxcui = 5640, name = Ibuprofen, tty = IN). Drug1 is resolved to nimesulide, Drug2 is resolved to Ibuprofen and interaction asserted in DrugBank between Nimesulide and Ibuprofen.","minConcept":[{"rxcui":"53694","name":"nimesulide","tty":"IN"},{"rxcui":"5640","name":"Ibuprofen","tty":"IN"}],"interactionPair":[{"interactionConcept":[{"minConceptItem":{"rxcui":"53694","name":"nimesulide","tty":"IN"},"sourceConceptItem":{"id":"DB04743","name":"Nimesulide","url":"http://www.drugbank.ca/drugs/DB04743#interactions"}},{"minConceptItem":{"rxcui":"5640","name":"Ibuprofen","tty":"IN"},"sourceConceptItem":{"id":"DB01050","name":"Ibuprofen","url":"http://www.drugbank.ca/drugs/DB01050#interactions"}}],"severity":"N/A","description":"The risk or severity of adverse effects can be increased when Ibuprofen is combined with Nimesulide."}]}]}]}

在iOS应用中使用Ti SDK 6.0.1.GA。

请记住,如果您在Android上运行此功能,则logcat可能会切断日志,因为字符数有限制。您可能想要尝试打印console.log(json.fullInteractionTypeGroup)以确保您获得该密钥。

如果这不起作用,请使用SDK版本,合金版本,项目目标等更新您的问题。