Android中未传入URL的参数

lnxxn5zx  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(138)

好吧,我已经看了多个例子,我的代码似乎是正确的,但无论出于什么原因,参数没有被添加到URL。我试图连接到Last.Fm API,我的代码如下:

  1. searchIT.setOnClickListener(new OnClickListener()
  2. {
  3. @Override
  4. public void onClick(View v)
  5. {
  6. // TODO Auto-generated method stub
  7. //Create new HTTPClient and Post header
  8. HttpPost API_ROOT = new HttpPost("http://ws.audioscrobbler.com/2.0/");
  9. HttpClient httpclient = new DefaultHttpClient();
  10. try
  11. {
  12. //Add Data
  13. List<NameValuePair> nameValPairs = new ArrayList<NameValuePair>(4);
  14. nameValPairs.add(new BasicNameValuePair("method", "artist.getevents")); //Get events for artist
  15. nameValPairs.add(new BasicNameValuePair("artist", namesBox.getText().toString())); //Get artist name
  16. nameValPairs.add(new BasicNameValuePair("autocorrect", "1")); //Turn on AutoCorrect
  17. nameValPairs.add(new BasicNameValuePair("api_key", "xxxxxxxxxxxxxxxxxxxx")); //API Key - redacted for privacy
  18. API_ROOT.setEntity(new UrlEncodedFormEntity(nameValPairs));
  19. Log.i(TAG, "URL: " + API_ROOT.getURI().toString());
  20. //Execute HTTP Post Request
  21. HttpResponse response = httpclient.execute(API_ROOT);
  22. }
  23. catch (UnsupportedEncodingException e)
  24. {
  25. // TODO Auto-generated catch block
  26. e.printStackTrace();
  27. }
  28. catch (ClientProtocolException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. }
  32. catch (IOException e) {
  33. // TODO Auto-generated catch block
  34. e.printStackTrace();
  35. }
  36. }
  37. });

字符串
我只是错过了什么吗?在日志中的网址显示为:http://ws.audioscrobbler.com/2.0/,所以它似乎错过了我试图传递到它的所有参数。任何想法,提示,更正或建议?

qxsslcnc

qxsslcnc1#

从onClick方法中启动一个新的Activity,并将所有需要的参数作为

  1. HashMap<String, String> o = (HashMap<String, String>) searchList.getItemAtPosition(position);
  2. Intent i = new Intent(SearchActivity.this, SearchDetails.class);
  3. i.putExtra("method", o.get("method"));
  4. i.putExtra("artist", o.get("artist"));
  5. i.putExtra("autocorrect", o.get("autocorrect"));
  6. i.putExtra("api_key", o.get("api_key"));

字符串
然后在新Activity中:在onCreate方法中

  1. Intent myIntent = getIntent();
  2. String method= myIntent.getStringExtra("method");
  3. String artist= myIntent.getStringExtra("artist");
  4. String autocorrect= myIntent.getStringExtra("autocorrect");
  5. String api_key= myIntent.getStringExtra("api_key");


现在您将获得所需的参数并将其添加到您的URL。
希望它能起作用

展开查看全部

相关问题