塞特不起作用

时间:2016-04-01 12:06:25

标签: java android login setter

Iam尝试进行登录活动 我遇到了问题。我的二传手不能工作,我不知道为什么? 我有3节课。

第一个是包含服务器数据和getter和setter的数据

public class Data{

String addressesURL = "/DataSnap/rest/TServerMethods1/LookupCustomers";
String articlesURL = "/DataSnap/rest/TServerMethods1/LookupArticle";
String invoicesURL = "/DataSnap/rest/TServerMethods1/LookupInvoice";
String invoicesDetailsURL = "/DataSnap/rest/TServerMethods1/LookupInvoicePos";
String invoicesDetailsAddressesURL = "/DataSnap/rest/TServerMethods1/LookupInvoiceAddress";
String ordersURL = "/DataSnap/rest/TServerMethods1/LookupOrders";
String ordersDetailsURL = "/DataSnap/rest/TServerMethods1/LookupOrdersPos";
String ordersDetailsAddressesURL = "/DataSnap/rest/TServerMethods1/LookupOrdersAddress";
public String serverURL;
//String serverURL = "http://10.10.10.75:8081";
String username = "admin";
String password = "admin";


public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getAddressesURL() {
    return addressesURL;
}

public void setAddressesURL(String addressesURL) {
    this.addressesURL = addressesURL;
}

public String getArticlesURL() {
    return articlesURL;
}

public void setArticlesURL(String articlesURL) {
    this.articlesURL = articlesURL;
}

public String getInvoicesURL() {
    return invoicesURL;
}

public void setInvoicesURL(String invoicesURL) {
    this.invoicesURL = invoicesURL;
}

public String getInvoicesDetailsURL() {
    return invoicesDetailsURL;
}

public void setInvoicesDetailsURL(String invoicesDetailsURL) {
    this.invoicesDetailsURL = invoicesDetailsURL;
}

public String getInvoicesDetailsAddressesURL() {
    return invoicesDetailsAddressesURL;
}

public void setInvoicesDetailsAddressesURL(String invoicesDetailsAddressesURL) {
    this.invoicesDetailsAddressesURL = invoicesDetailsAddressesURL;
}

public String getOrdersURL() {
    return ordersURL;
}

public void setOrdersURL(String ordersURL) {
    this.ordersURL = ordersURL;
}

public String getOrdersDetailsURL() {
    return ordersDetailsURL;
}

public void setOrdersDetailsURL(String ordersDetailsURL) {
    this.ordersDetailsURL = ordersDetailsURL;
}

public String getOrdersDetailsAddressesURL() {
    return ordersDetailsAddressesURL;
}

public void setOrdersDetailsAddressesURL(String ordersDetailsAddressesURL) {
    this.ordersDetailsAddressesURL = ordersDetailsAddressesURL;
}

public String getServerURL() {
    return serverURL;
}

public void setServerURL(String serverURL) {
    this.serverURL = serverURL;
}}

第二个是我开始登录活动的地方

public class Settings extends AppCompatActivity {
//declarations

//Edittext fields for username , server, password & port information
EditText edtIpurl, edtPort, edtUsername, edtPassword;
//Textviews that can be clicked
TextView databaseDel, databaseRef, magnumgmbh, contact, support;
//imagebuttons for bottom menu
ImageButton contacts, articles, invoices, orders;
//string for server URL
//String sURL = "http://";
Thread newSettingsThread;



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


    setTitle("Settings");

    newSettingsThread = new Thread(){
        public void run(){
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    String serverURL = "http://rest.magnumgmbh.de";

                    //edtIpurl = (EditText)findViewById(R.id.edtIpurl);

                    Data newD = new Data();
                    newD.setServerURL(serverURL);
                }
            });
        }
    };
    newSettingsThread.start();




    //start activitys if bottom buttons clicked
    contacts = (ImageButton) findViewById(R.id.contacts);

    //articles activity start
    contacts.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //start activity addresses
            Intent startAddresses = new Intent(Settings.this, Addresses.class);
            startActivity(startAddresses);
        }
    });
}}

下一个是我尝试获取新服务器的地方

public class Address extends AppCompatActivity{
     Thread newAddressThread;
     @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_addresses);

    //set activity name
    setTitle("Addresses");

    //new thread for network operations
    newAddressesThread = new Thread() {
        public void run() {
            //make text from json
            jsonText = new StringBuilder();
            try {
                String str;
                Data newData = new Data();


                //json dates url
                String addressesURL = newData.getAddressesURL();
                String serverUrl = newData.getServerURL();
                String username = newData.getUsername();
                String password = newData.getPassword();

                URL url = new URL(serverUrl + addressesURL);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                //String encoded = Base64.encode("admin:admin");
                String encoded = Base64.encodeToString((username+":"+password).getBytes("UTF-8"), Base64.NO_WRAP);
                urlConnection.setRequestProperty("Authorization", "Basic " + encoded);

                //check http status code
                try {
                    int statusCode = urlConnection.getResponseCode();
                    System.out.println(statusCode);
                } catch (IOException e) {

                }

                BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                while ((str = in.readLine()) != null) {
                    jsonText.append(str);
                }
                //cast stringbuilder to string
                addressesJsonStr = jsonText.toString();
                //close IOstream
                in.close();
            } catch (MalformedURLException e1) {
                System.out.println(e1.getMessage());
            } catch (IOException e) {
                System.out.println(e.getMessage());
            }
            }
    };

    //start thread
    newAddressesThread.start();
}}

通过serverURL在第三个中的Hier我得到了null并且它给了我一个例外" Protocol not found: null/DataSnap/rest/TServerMethods1/LookupCustomers"这是我的问题。 我错了什么?

1 个答案:

答案 0 :(得分:0)

您正在第三个类中创建一个新的Object,因此该url具有initilize值,因为您在第二个类中设置的url存储在另一个对象中。

如果您希望所有类型数据对象具有相同的地址,请将变量设为静态,否则您必须访问在第三个类的第二个类中创建的对象。