Параметры не передаются в URL в Android - PullRequest
0 голосов
/ 08 июня 2011

Хорошо, я посмотрел несколько примеров, и мой код кажется правильным, но по какой-либо причине параметры не добавляются в URL.Я пытаюсь подключиться к API Last.Fm, и мой код выглядит следующим образом:

searchIT.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            //Create new HTTPClient and Post header
            HttpPost API_ROOT = new HttpPost("http://ws.audioscrobbler.com/2.0/");
            HttpClient httpclient = new DefaultHttpClient();

            try 
            {
                //Add Data
                List<NameValuePair> nameValPairs = new ArrayList<NameValuePair>(4);

                nameValPairs.add(new BasicNameValuePair("method", "artist.getevents")); //Get events for artist
                nameValPairs.add(new BasicNameValuePair("artist", namesBox.getText().toString()));  //Get artist name
                nameValPairs.add(new BasicNameValuePair("autocorrect", "1"));   //Turn on AutoCorrect
                nameValPairs.add(new BasicNameValuePair("api_key", "xxxxxxxxxxxxxxxxxxxx")); //API Key - redacted for privacy
                API_ROOT.setEntity(new UrlEncodedFormEntity(nameValPairs));
                Log.i(TAG, "URL: " + API_ROOT.getURI().toString());

                //Execute HTTP Post Request
                HttpResponse response = httpclient.execute(API_ROOT);


            } 
            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();
            }
        }
    });

Я что-то здесь упускаю?В журнале URL отображается как: http://ws.audioscrobbler.com/2.0/, поэтому в нем отсутствуют все параметры, которые я пытался передать в него.Есть идеи, советы, исправления или предложения?Спасибо!

1 Ответ

0 голосов
/ 08 июня 2011

С помощью метода onClick начните новое действие и передайте все параметры, которые вы хотите, как

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

Тогда в вашем новом действии: в методе onCreate

    Intent myIntent = getIntent(); 
    String method= myIntent.getStringExtra("method");
    String artist= myIntent.getStringExtra("artist");
    String autocorrect= myIntent.getStringExtra("autocorrect");
    String api_key= myIntent.getStringExtra("api_key");

Теперь вы получите нужные параметры и добавите их в свой URL.

Надеюсь, что это работает

...