Как правильно использовать ksoap2, чтобы получить текст песни API - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь показать текст песни, которая воспроизводится в моем приложении (приложение музыкального проигрывателя).

Я нашел учебник о том, как реализовать сервис SOAP в YouTube, но это было своего роданеясно, так что все, что я мог, так это:

//Get Lyrics API
private class SoapCall extends AsyncTask<String, Object, String> {

    public static final String NAMESPACE = "http://api.chartlyrics.com/";
    public static final String URL = "http://api.chartlyrics.com/apiv1.asmx?WSDL";
    public static final String SOAP_ACTION = "http://api.chartlyrics.com/SearchLyricDirect";
    public static final String METHOD_NAME = "SearchLyricDirect";
    public int TimeOut = 30000;
    String response;


    @Override
    protected String doInBackground(String... strings) {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);

        HttpTransportSE transportSe = new HttpTransportSE(URL, TimeOut);
        transportSe.debug = true;

        try {
            transportSe.call(SOAP_ACTION, envelope);
            response = (String) envelope.getResponse();
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("Error", e.toString());
        }
        return response;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);

        if (result != null) {
            testSoapTxt.setText(result);
        } else {
            Toast.makeText(getActivity(), "Something went wrong with API", Toast.LENGTH_LONG).show();
        }
    }
}

Но я получаю java.net.SocketTimeoutException при попытке показать некоторые тексты.Я отладил приложение и обнаружил, что response равно нулю.

Я использую этот API: SOAP API для получения текста
I 'Мы следовали этому руководству: Учебник по SOAP API

Для целей тестирования я просто хочу увидеть, ЕСЛИ я могу показать любой текст в моем textView.Если я смогу выполнить эту работу, я продолжу свое путешествие и правильно его осуществлю.

РЕДАКТИРОВАТЬ: Я нашел обходной путь, когда я вручную вставлял текст в свой вид, но он не выглядит очень удобным (слишком много беспорядка).

//Add songs to my list
    arrayList.add(new Song("Akon", "-Dont matter", R.raw.akon_dontmatter, R.drawable.akon, "Konvict, konvict, konvict\n" +
            "Oh, oh, oh, ooh, oh, oh\n" +
            "Oh, oh, oh, ooh, oh, oh\n" +
            "Nobody wanta' see us together\n" +
            "But it don't matter, no ('cause I got you babe)\n" +
            "Nobody wanta' see us together\n" +
            "But it don't matter, no ('cause I got you babe)\n" +
            "Cause we gonna fight, oh yes, we gonna fight (we gonna fight)\n" +
            "Believe we gonna fight (we gonna fight)\n" +
            "Fight for our right to love, yeah (right to love, yeah)\n" +
            [...]

Есть предложения?

Спасибо.

...