在我的android代码

时间:2017-05-04 03:00:50

标签: java android api personality-insights

我在Android代码中集成个性见解api时遇到问题。虽然我遵循了androidauthority的链接,后来改变了网址和服务凭证值,但似乎没有任何效果,错误是错误。我也知道个性见解已解释 如何集成相同但在java中是一个绝对的初学者,我在整合相同的问题。基本上我的目标是我必须接受来自用户的纯文本输入,然后调用api并获取结果。初始代码是:

package com.shubham.myapplication;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;




public class MainActivity extends AppCompatActivity {

EditText plainText;
TextView responseView;
ProgressBar progressBar;
static final String  USER_NAME = "**USER_NAME**";
static final String PASS_WORD = "**PASS_WORD**";
static final String API_URL = "https://gateway.watsonplatform.net/personality-insights/api";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    responseView = (TextView) findViewById(R.id.responseView);
    plainText = (EditText) findViewById(R.id.plainText);
    progressBar = (ProgressBar) findViewById(R.id.progressBar);

    Button queryButton = (Button) findViewById(R.id.queryButton);
    queryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String text = plainText.getText().toString();
            new RetrieveFeedTask().execute();
        }
    });
}

class RetrieveFeedTask extends AsyncTask<Void, Void, String> {

    private Exception exception;

    protected void onPreExecute() {


        progressBar.setVisibility(View.VISIBLE);
        responseView.setText("");
    }

    protected String doInBackground(Void... urls) {

        String text = plainText.getText().toString();
        // Do some validation here

        try {
            URL url = new URL(API_URL + "text=" + text + "&username=" + USER_NAME + "&password=" + PASS_WORD);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            try {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                StringBuilder stringBuilder = new StringBuilder();
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    stringBuilder.append(line).append("\n");
                }
                bufferedReader.close();
                return stringBuilder.toString();
            }
            finally{
                urlConnection.disconnect();
            }
        }
        catch(Exception e) {
            Log.e("ERROR", e.getMessage(), e);
            return null;
        }
    }

    protected void onPostExecute(String response) {
        if(response == null) {
            response = "THERE WAS AN ERROR";
        }
        progressBar.setVisibility(View.GONE);
        Log.i("INFO", response);
        responseView.setText(response);
        // TODO: check this.exception
        // TODO: do something with the feed

//            try {
//                JSONObject object = (JSONObject) new 
JSONTokener(response).nextValue();
//                String requestID = object.getString("requestId");
//                int likelihood = object.getInt("likelihood");
//                JSONArray photos = object.getJSONArray("photos");
//                .
//                .
//                .
//                .
//            } catch (JSONException e) {
//                e.printStackTrace();
//            }
    }
}
}

请告诉我如何成功获取结果!

0 个答案:

没有答案