- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将数据从 Android 应用程序发送到 Servlet。我的 Android 应用程序运行正常。
问题仅与发送到 Servlet 的请求有关。它给出错误 BasicNetwork.performRequest: Unexpected response code 500
注意:我正在使用 Android Volley 库将我的请求发送到 Servlet。
下面我提到了: 1.我的Android应用程序代码 2.我的Servlet代码 3.日志
我的 Android 应用:MainActivity.java 文件
package com.example.hawk;
import java.util.HashMap;
import java.util.Map;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements View.OnClickListener {
EditText var_sp = null;
EditText var_ect = null;
EditText var_er = null;
EditText var_iat = null;
EditText var_atp = null;
Button submit;
RequestQueue rq = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
v1 = (EditText) findViewById(R.id.sp);
v2 = (EditText) findViewById(R.id.ect);
v3 = (EditText) findViewById(R.id.er);
v4 = (EditText) findViewById(R.id.iat);
v5 = (EditText) findViewById(R.id.atp);
submit = (Button) findViewById(R.id.submit);
rq=Volley.newRequestQueue(this);
submit.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.submit:
new Thread(new Runnable() {
public void run() {
try{
StringRequest postReq = new StringRequest(Request.Method.POST, "http://192.168.0.103:8080/ServletABC",new Response.Listener<String>() {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("var1",v1.getText().toString());
params.put("var2",v2.getText().toString());
params.put("var3",v3.getText().toString());
params.put("var4",v4.getText().toString());
params.put("var5",v5.getText().toString());
return params;
}
@Override
public void onResponse(String response) {
// TODO Auto-generated method stub
}
}, null);
rq.add(postReq);
}catch(Exception e)
{
e.printStackTrace();
}
}
}).start();
break;
}
}
}
我的小服务程序:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class OBD_Feeder extends HttpServlet{
// JDBC driver name and database URL
public static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
public static final String DB_URL="jdbc:mysql://localhost/Test";
// Database credentials
public static final String USER ="xxxx";
public static final String PASS ="xxxx";
Connection conn;
Statement stmt;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
double v1=Double.parseDouble(request.getParameter("var1"));
double v2=Double.parseDouble(request.getParameter("var2"));
double v3=Double.parseDouble(request.getParameter("var3"));
double v4=Double.parseDouble(request.getParameter("var4"));
double v5=Double.parseDouble(request.getParameter("var5"));
Calendar calendar = Calendar.getInstance();
java.sql.Timestamp today_ts = new java.sql.Timestamp(calendar.getTime().getTime());
//System.out.println("TimeStamp: "+today_ts);
try{
// Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
// Open a connection
conn =DriverManager.getConnection(DB_URL,USER,PASS);
// Execute SQL query
stmt = conn.createStatement();
PreparedStatement pst =(PreparedStatement) conn.prepareStatement("insert into obd_test1(speed,coolant_temp,engine_rpm,in_air_temp,throttle_position, time_stamp) values(?,?,?,?,?,?)");
pst.setDouble(1,v1);
pst.setDouble(2,v2);
pst.setDouble(3,v3);
pst.setDouble(4,v4);
pst.setDouble(5,v5);
pst.setTimestamp(6,today_ts);
System.out.println("DB Query: "+pst.toString());
//Query execution
int i = pst.executeUpdate();
//conn.commit();
String msg=" ";
if(i!=0){msg="Record has been inserted";}
else{msg="failed to insert the data";}
System.out.println("DB Transaction Status: "+msg);
String docType ="<!doctype html public \"-//w3c//dtd html 4.0 "+"transitional//en\">\n";
out.println(docType +
"<html>\n"+
"<head><title>OBD Feeder</title></head>\n"+
"<body bgcolor=\"#f0f0f0\">\n"+
"<h1 align=\"center\">DATA Received:</h1>\n"+
"<ul>\n"+msg+"</ul>\n"+
"</body></html>");
pst.close();
stmt.close();
conn.close();
}catch(SQLException se){ se.printStackTrace();}//Handle errors for JDBC se.printStackTrace();
catch(Exception e){ e.printStackTrace();}//Handle errors for Class.forName e.printStackTrace();
finally
{ //finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){ se2.printStackTrace();}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){ se.printStackTrace();
}//end finally try
}
}
}
我的日志:
08-15 10:42:55.128: I/HAWK(29403): POST Request: [ ] http://192.168.0.102:8080/OBD_Feeder 0x85adf656 NORMAL 3
08-15 10:42:55.408: E/Volley(29403): [1056] BasicNetwork.performRequest: Unexpected response code 500 for http://192.168.0.102:8080/ServletABC
08-15 10:42:55.408: D/HAWK(29403): Error: null
08-15 10:44:56.648: W/IInputConnectionWrapper(29403): getTextBeforeCursor on inactive InputConnection
最佳答案
检查你是否使用了正确的SDK
对于 Android Studio/IntelliJIDEA:
File -> Project Structure -> Project -> Project SDK
Modules -> Check each modules "Module SDK"
您最好使用“Google API (x.x)”而不是 Android API
关于Android:面临问题 -'BasicNetwork.performRequest: Unexpected response code 500',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322314/
我试图通过 volley 库向我的服务器发送一个发布请求。但它不起作用。我已经在 Postman 中测试了我的 API,它在那里工作。我使用了相同的参数。 我得到的错误: BasicNetwork.p
我在使用 volley 库发出网络请求时遇到此错误,我已点击这些链接 Android Volley - BasicNetwork.performRequest: Unexpected response
当我尝试使用 Volley StringRequest 或 JsonObjectRequest 通过 rest api 获取数据时。我总是收到 400 错误。它与 postman 合作良好。 http
所以我正在尝试登录我的应用程序,当我在插入用户名和密码后单击登录按钮时,此错误显示在 android studio 中左下角底部工具栏的运行选项卡中: E/Volley: [11996] BasicN
我正在尝试从优步获取访问 token (我能够收到请求代码)。但是每当我尝试调用调用响应时总是显示错误 BasicNetwork.performRequest: Unexpected response
我的 Android Studio 中有这个登录 Java 代码: private void loginUser(){ pd = ProgressDialog.show(LoginAc
我正在使用 volley 库通过 POST 方法将用户注册到后端服务器。但它在 android logcat 中显示 BasicNetwork.performRequest: Unexpected r
当单击尚未选择的 EditParts(因此没有“直接编辑请求”)时,不会调用 EditPart 的方法 performRequest(Request)。 事情应该是这样吗?如果是,那么 REQ_SEL
我想从数据库中获取用户的信息并显示出来,但我一直收到这个错误: BasicNetwork.performRequest: Unexpected response code 404 这是我的javaco
为什么当我点击“登录”按钮时出现此错误:“E/Volley: [126] BasicNetwork.performRequest: 意外响应代码 500”? PS:它适用于本地,因此适用于本地数据库。
对于我的移动应用程序,我使用 Android Pay + Stripe 作为支付网关。我使用 Stripe 创建了一个商家帐户,并使用 PUBLISHABLE key 生成了一个 token 。在过去
我正在使用 Volley 库向服务器发送登录到应用程序的请求。直到几个小时前它才出现任何问题。但没有任何原因,我收到此错误“BasicNetwork.performRequest:意外响应代码 429
我正在尝试更新数据库中的参数,但在 Android 中我收到此错误: 09-15 13:26:43.505 31109-31784/app.bsmo.ismael034.com.bsmo E/Voll
我有这个错误: Volley: [8918] BasicNetwork.performRequest: Unexpected response code 403 for 我正在尝试连接服务器,但我无法
我正在使用 volley 将带有 GET 方法的请求链接发送到服务器以获取 json 对于大多数设备的大多数 android 版本,它都可以正常工作... 但它在一些平板电脑上发生意外错误并导致此错误
我正在尝试将数据从 Android 应用程序发送到 Servlet。我的 Android 应用程序运行正常。 问题仅与发送到 Servlet 的请求有关。它给出错误 BasicNetwork.perf
我最近开始开发我的 Android 应用程序,我需要一个登录和注册系统。我在 androidhive.info 上找到了一个教程,但我经常遇到错误。我正在使用 volley 库发送 HTTP 请求,L
我正在做一个用户注册是一个小模块的项目。我在这里使用了一些参数,例如姓名、电子邮件、联系方式、年龄、地址和个人资料图片。 //Here is my Android part Code Where Pr
问题陈述: 我正在尝试访问一个 REST API,该 API 将使用 Volley 为各种 HTTP 状态代码(400、403、200 等)返回一个 JSON 对象。 对于 200 以外的任何 HTT
我的第一个帖子:Anything I try to store on database enters with value '0' 我解决了这个问题,但现在我遇到了另一个问题:为什么我尝试登录时出现此
我是一名优秀的程序员,十分优秀!