有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java截击请求仅在LoginActivity中工作

我已经试着解决这个问题两个多小时了。 我的帖子请求似乎都在我的后勤活动中起作用,但由于某些原因,它们在我的主要活动中不起作用

我的网络服务器可以处理请求
url在我的项目中是正确的,我只是在这里更改了它

以下是主要活动:

package com.my.app;


import 安卓.app.AlertDialog;
import 安卓.content.Context;
import 安卓.content.DialogInterface;
import 安卓.content.SharedPreferences;
import 安卓.os.Bundle;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.util.Log;
import 安卓.view.Menu;
import 安卓.view.MenuItem;
import 安卓.widget.TextView;

import com.安卓.volley.Request;
import com.安卓.volley.RequestQueue;
import com.安卓.volley.Response;
import com.安卓.volley.VolleyError;
import com.安卓.volley.toolbox.StringRequest;
import com.安卓.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import okhttp3.MediaType;

public class MainActivity extends AppCompatActivity {

    String serverResponse;

    Boolean apiKeyValid = false;

    // User Data
    String status, userID, username, klasse, email, fullname, description, pb, classRep, schoolRep, mod, lastLogin, firstVisit, bugsFound, apiKey, userSummary;

    public void validateApiKey(){
        SharedPreferences sp =
                getSharedPreferences("Authentication",
                        Context.MODE_PRIVATE);
        if (sp.contains("apiKey")) {
            apiKey = sp.getString("apiKey", "false");

            RequestQueue MyRequestQueue = Volley.newRequestQueue(this);
            String url = "http://mydomain/api/v1/apiKeyValid";
            StringRequest MyStringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        serverResponse = response;
                        JSONObject userData = new JSONObject(response);

                        status = userData.getString("status");
                        if (status.equals("valid")) {
                            apiKeyValid = true;
                        }
                    } catch (JSONException e) {
                        Log.e("App", "unexpected JSON exception", e);
                    }
                }
            }, new Response.ErrorListener() { 
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }) {
                protected Map<String, String> getParams() {
                    Map<String, String> MyData = new HashMap<String, String>();
                    MyData.put("apiKey", apiKey);
                    return MyData;
                }
            };
            MyRequestQueue.add(MyStringRequest);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        validateApiKey();
        if (apiKeyValid){
            TextView hello = (TextView) findViewById(R.id.hi);
            String msg = "Api Key is valid! :)\n" + "ApiKey: " + apiKey;
            hello.setText(msg);
        }
        else{
            Intent intent = new Intent(this, LoginActivity.class);
            startActivity(intent);
        }
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

如果我还需要发布什么,尽管问。 希望有人能认识到我的问题,谢谢!:)


共 (0) 个答案