响应代码 500 Android POST 方法
response code 500 Android POST method
我阅读了很多有相同问题的帖子并尝试应用他们的解决方案,但没有人适合我。我对 Java 和 Android 很陌生。 url 是 "https",这不是错误。我的 java 代码如下:
public class Main3Activity extends AppCompatActivity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
b1 = (Button) findViewById(R.id.button_pago);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
new SendPostRequest().execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public class SendPostRequest extends AsyncTask<String, Void, String> {
protected void onPreExecute(){}
protected String doInBackground(String... arg0) {
try {
URL url = new URL("https://www.myweb.com/login_app.php");
JSONObject postDataParams = new JSONObject();
postDataParams.put("precio", "5000");
postDataParams.put("texto", "f...h");
Log.e("params",postDataParams.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
BufferedReader in=new BufferedReader(new
InputStreamReader(
conn.getInputStream()));
StringBuffer sb = new StringBuffer("");
String line="";
while((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
}
else {
return new String("false : "+responseCode);
}
}
catch(Exception e){
return new String("Exception: " + e.getMessage());
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(), result,
Toast.LENGTH_LONG).show();
}
}
public String getPostDataString(JSONObject params) throws Exception {
StringBuilder result = new StringBuilder();
boolean first = true;
Iterator<String> itr = params.keys();
while(itr.hasNext()){
String key= itr.next();
Object value = params.get(key);
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(key, "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(value.toString(), "UTF-8"));
}
return result.toString();
}
}
非常感谢您抽出宝贵时间。
查看日志文件,我发现了很多如下信息:
81.184.8.77 - - [23/Aug/2016:12:54:05 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
81.184.8.77 - - [23/Aug/2016:12:59:37 +0200] "POST /login_app.php HTTP/1.1" 500 10793 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1.1; ONE E1001 Build/LMY47V)" "-"
81.184.8.77 - - [23/Aug/2016:13:01:05 +0200] "POST /login_app.php HTTP/1.1" 500 10807 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
81.184.8.77 - - [23/Aug/2016:13:01:07 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
我前段时间遇到过这个问题。服务器中的日志将帮助您解决问题。
仅作记录,此类错误的日志通常位于以下位置:var/log/apache2/error.log
您可能需要对 php.ini 文件进行一些更改以记录这些错误。
希望对您有所帮助:)
您可以在此处阅读不同类型的 HTTP 状态代码
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
500 内部服务器错误
一般性错误消息,在遇到意外情况且没有更具体的消息适用时给出。
我刚刚找到了解决方案:我需要设置 allow_url_fopen
值。这个变量可以在 php.ini
中找到,正如其他人所说的那样,在我的情况下,无法在服务器中找到该文件,我不得不去我的域名提供商网页,进入私人区域并查找 php 配置。
希望对其他人有所帮助,也希望对您有所帮助
我阅读了很多有相同问题的帖子并尝试应用他们的解决方案,但没有人适合我。我对 Java 和 Android 很陌生。 url 是 "https",这不是错误。我的 java 代码如下:
public class Main3Activity extends AppCompatActivity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
b1 = (Button) findViewById(R.id.button_pago);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
new SendPostRequest().execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
public class SendPostRequest extends AsyncTask<String, Void, String> {
protected void onPreExecute(){}
protected String doInBackground(String... arg0) {
try {
URL url = new URL("https://www.myweb.com/login_app.php");
JSONObject postDataParams = new JSONObject();
postDataParams.put("precio", "5000");
postDataParams.put("texto", "f...h");
Log.e("params",postDataParams.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
BufferedReader in=new BufferedReader(new
InputStreamReader(
conn.getInputStream()));
StringBuffer sb = new StringBuffer("");
String line="";
while((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
}
else {
return new String("false : "+responseCode);
}
}
catch(Exception e){
return new String("Exception: " + e.getMessage());
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(), result,
Toast.LENGTH_LONG).show();
}
}
public String getPostDataString(JSONObject params) throws Exception {
StringBuilder result = new StringBuilder();
boolean first = true;
Iterator<String> itr = params.keys();
while(itr.hasNext()){
String key= itr.next();
Object value = params.get(key);
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(key, "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(value.toString(), "UTF-8"));
}
return result.toString();
}
}
非常感谢您抽出宝贵时间。
查看日志文件,我发现了很多如下信息:
81.184.8.77 - - [23/Aug/2016:12:54:05 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
81.184.8.77 - - [23/Aug/2016:12:59:37 +0200] "POST /login_app.php HTTP/1.1" 500 10793 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1.1; ONE E1001 Build/LMY47V)" "-"
81.184.8.77 - - [23/Aug/2016:13:01:05 +0200] "POST /login_app.php HTTP/1.1" 500 10807 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
81.184.8.77 - - [23/Aug/2016:13:01:07 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-"
我前段时间遇到过这个问题。服务器中的日志将帮助您解决问题。
仅作记录,此类错误的日志通常位于以下位置:var/log/apache2/error.log
您可能需要对 php.ini 文件进行一些更改以记录这些错误。
希望对您有所帮助:)
您可以在此处阅读不同类型的 HTTP 状态代码 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
500 内部服务器错误
一般性错误消息,在遇到意外情况且没有更具体的消息适用时给出。
我刚刚找到了解决方案:我需要设置 allow_url_fopen
值。这个变量可以在 php.ini
中找到,正如其他人所说的那样,在我的情况下,无法在服务器中找到该文件,我不得不去我的域名提供商网页,进入私人区域并查找 php 配置。
希望对其他人有所帮助,也希望对您有所帮助