gpt4 book ai didi

java - 不幸的是,与服务器的连接出现错误

转载 作者:行者123 更新时间:2023-11-30 10:33:02 25 4
gpt4 key购买 nike

我正在尝试Toast 我服务器中的一个值。我正在使用 php 文件获取到服务器。但不幸的是应用程序关闭了。我完全困惑可能是什么原因?

我的主要 Activity 包 com.example.android.balance;

 import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

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

import java.util.HashMap;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Context mContext;
private Common mApp;
private Button get;
private EditText user;
private HashMap<String, String> sData;
private String usr_id, balance, s;

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

get = (Button) findViewById(R.id.but);
user = (EditText) findViewById(R.id.text);

//usr_id = user.getText().toString();

/*get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (user.getText().toString().length()== 0){
user.setError("Enter your user Id");
user.requestFocus();
}else {
//new Getbalance(mContext,usr_id).execute();
Toast.makeText(mContext, usr_id, Toast.LENGTH_SHORT).show();
}
}
});*/

get.setOnClickListener(this);

}

@Override
public void onClick(View view) {

if (user.getText().toString().length() == 0) {
user.setError("Enter your user Id");
user.requestFocus();
} else {
//Toast.makeText(MainActivity.this, user.getText().toString(), Toast.LENGTH_SHORT).show();
// new Getbalance(MainActivity.this,user).execute();
new Getbal().execute();
}
}

private class Getbal extends AsyncTask<String, String, String> {

String userid = user.getText().toString();


@Override
protected String doInBackground(String... strings) {
sData = new HashMap<String, String>();
sData.put("user", userid);
try {
JSONObject json = Connection.UrlConnection(php.bal, sData);
int suc = json.getInt("success");

if (suc == 0) {


} else {
JSONArray jsonArray = json.getJSONArray("balance");
JSONObject child = jsonArray.getJSONObject(0);

String bal = child.optString("balance");
balance = bal;

s = "true";

}

} catch (JSONException e) {
}

return s;
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s.equalsIgnoreCase("true")) {
Toast.makeText(MainActivity.this, balance, Toast.LENGTH_SHORT).show();
}

}
}
}

我的连接文件

   package com.example.android.balance;

import android.util.Log;

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

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;



public class Connection {
private static InputStream is = null;
private static JSONObject jsonObj = null;
private static String json = null;
private static HttpURLConnection urlConnection;


public Connection() {
}

public static JSONObject UrlConnection(String url, HashMap<String, String> data) {

try {
URL link = new URL(url);
urlConnection = (HttpURLConnection) link.openConnection();
urlConnection.setReadTimeout(10000);
urlConnection.setConnectTimeout(7000);
urlConnection.setRequestMethod("POST");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
OutputStream os = urlConnection.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(data));
writer.flush();
writer.close();
os.close();
urlConnection.connect();
is = urlConnection.getInputStream();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
Log.d("Buffer json : ", json);
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

// try parse the string to a JSON object
try {
jsonObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

return jsonObj;
}

private static String getQuery(HashMap<String, String> data) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;

for (Map.Entry<String, String> entry : data.entrySet()) {
if (first)
first = false;
else
result.append("&");

result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}

return result.toString();
}
}

错误日志

  02-23 11:42:23.841 21899-21944/com.example.android.balance E/Buffer Error: Error converting result java.lang.NullPointerException: lock == null
02-23 11:42:23.845 21899-21942/com.example.android.balance D/Surface: Surface::setBuffersDimensions(this=0xb45a6e00,w=720,h=1280)
02-23 11:42:23.852 21899-21944/com.example.android.balance E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.example.android.balance, PID: 21899
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
at org.json.JSONTokener.nextValue(JSONTokener.java:94)
at org.json.JSONObject.<init>(JSONObject.java:156)
at org.json.JSONObject.<init>(JSONObject.java:173)
at com.example.android.balance.Connection.UrlConnection(Connection.java:80)
at com.example.android.balance.MainActivity$Getbal.doInBackground(MainActivity.java:77)
at com.example.android.balance.MainActivity$Getbal.doInBackground(MainActivity.java:67)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:818) 

我的 php 文件,用于获取数据库

  <?php
if(isset($_POST["user"]))
{
$x2=$_POST["user"];

$response['balance']=array();

$data=Array( 'LOGINUSER' => 'voixmeapi',
'LOGINSECRET' => sha1('112233'),
'SECTION' => 'SUBSCRIBER',
'ACTION' => 'GETBALANCE',
'DATA'=>Array('SUBSCRIBERID'=>$x2));
$url_send ="http://134.119.216.77/api/api.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url_send);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,'request='.json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
//print_r($server_output);


$test=(explode("{",$server_output));
//print_r($test);
$test1=(explode("CREDIT",$test[2]));
$test2=(explode(",",$test1[1]));
$test3=(explode(":",$test2[0]));//success
$test4=ltrim($test3[1],'"');
//print_r($payment);
$balance=trim($test4,'"');
array_push($response["balance"],$balance);
$response['success']=1;
echo json_encode($response);

}
else{
$response['msg']='No data post';
$response['success']=0;
echo json_encode($response);
}
?>

php.java

  package com.example.android.balance.parser;


public class php {

public static final String bal="http://voix-me.com/android/GetBal.php" ;
}

在浏览器中运行 php 文件时它工作正常。

最佳答案

这将是因为在正确的连接java文件引用db connection

java.util.Map map = con.getTypeMap();
map.put("mySchemaName.ATHLETES", Class.forName("Athletes"));
con.setTypeMap(map);

可能会有帮助

关于java - 不幸的是,与服务器的连接出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42408621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com