无法从Android向ROR服务器发送JSON数据
我正在尝试将JSON数据从Android应用程序发送到服务器。数据库是MySQL,ROR用于服务器端代码。下面是用于发送数据的代码无法从Android向ROR服务器发送JSON数据,android,ruby-on-rails,json,Android,Ruby On Rails,Json,我正在尝试将JSON数据从Android应用程序发送到服务器。数据库是MySQL,ROR用于服务器端代码。下面是用于发送数据的代码 try{ JSONObject json = new JSONObject(); json.put("id", "1"); json.put("catname", "gaurav"); json.put("catstart", "01
try{
JSONObject json = new JSONObject();
json.put("id", "1");
json.put("catname", "gaurav");
json.put("catstart", "01012013");
json.put("catend", "01012013");
json.put("catvisible", "Y");
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpClient client = new DefaultHttpClient(httpParams);
String url = "http://192.168.1.9/3000/categories/create";
HttpPost request = new HttpPost(url);
request.addHeader("Accept","application/json");
request.addHeader("Content-Type","application/json");
request.setEntity(new ByteArrayEntity(json.toString().getBytes(
"UTF8")));
//request.setHeader("json", json.toString());
HttpResponse response = client.execute(request);
这里192.168.1.9是我的机器IP地址。在eclipse上调试时,我可以看到'request'中的值,但它在执行last
HttpResponse response=client.execute(request)时出错代码>。我对这个很陌生,所以不确定我是否遗漏了什么。此外,如果收到任何请求,我将尝试签入rails服务器。那里什么都没有。请告知。谢谢。用BasicNameValuePair发送json对象
//这里sear、shortvalue是json
DefaultHttpClient client1 = new DefaultHttpClient();
List<NameValuePair> params1 = new ArrayList<NameValuePair>();
params1.add(new BasicNameValuePair("q",sear));
params1.add(new BasicNameValuePair("o",shortvalue));
params1.add(new BasicNameValuePair("p","1"));
params1.add(new BasicNameValuePair("filter_on",String.valueOf(jarry)));
String paramString = URLEncodedUtils.format(params1, "utf-8");
HttpGet httpGet = new HttpGet(servername+"search/"+"?" + paramString);
//httpGet.setHeader("Cookie","_bb_vid="+""+Vis_id12);
try {
httpResponse = client1.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
responseCode = httpResponse.getStatusLine().getStatusCode();
String line = null;
BufferedReader reader1 = null;
try
{
reader1 = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
}
catch (Exception e)
{
// TODO: handle exception
exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e);
Writefile();
}
while ((line = reader1.readLine()) != null)
{
try {
filObject = new JSONObject(line);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e);
Writefile();
}
catch (Exception e)
{
// TODO: handle exception
exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e);
Writefile();
}
}
searchJsonObject=filObject;
checkfil=true;
} catch (Exception e) {
// TODO: handle exception
exp_Message="Search.java"+" "+e+" "+e.getMessage()+" "+Log.getStackTraceString(e);
Writefile();
}
DefaultHttpClient客户端1=新的DefaultHttpClient();
List params1=new ArrayList();
参数1.add(新的BasicNameValuePair(“q”,sear));
参数1.add(新的BasicNameValuePair(“o”,shortvalue));
参数1.添加(新的BasicNameValuePair(“p”,“1”));
params1.add(新的BasicNameValuePair(“filter_on”,String.valueOf(jarry));
String paramString=URLEncodedUtils.format(params1,“utf-8”);
HttpGet HttpGet=新的HttpGet(服务器名+“搜索/“+”?“+参数字符串);
//httpGet.setHeader(“Cookie”,“_bb_vid=“+”+Vis_id12”);
试一试{
httpResponse=client1.execute(httpGet);
HttpEntity HttpEntity=httpResponse.getEntity();
responseCode=httpResponse.getStatusLine().getStatusCode();
字符串行=null;
BufferedReader读取器1=null;
尝试
{
reader1=新的BufferedReader(新的InputStreamReader(httpResponse.getEntity().getContent(),“UTF-8”);
}
捕获(例外e)
{
//TODO:处理异常
exp_Message=“Search.java”+“”+e+“”+e.getMessage()+“”+Log.getStackTraceString(e);
Writefile();
}
而((line=reader1.readLine())!=null)
{
试一试{
filObject=新的JSONObject(行);
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
exp_Message=“Search.java”+“”+e+“”+e.getMessage()+“”+Log.getStackTraceString(e);
Writefile();
}
捕获(例外e)
{
//TODO:处理异常
exp_Message=“Search.java”+“”+e+“”+e.getMessage()+“”+Log.getStackTraceString(e);
Writefile();
}
}
searchJsonObject=filObject;
checkfil=true;
}捕获(例外e){
//TODO:处理异常
exp_Message=“Search.java”+“”+e+“”+e.getMessage()+“”+Log.getStackTraceString(e);
Writefile();
}
我想问题出在URL上。
请试着换一下电话号码
http://192.168.1.9/3000/categories/create
致:
希望这有帮助,它会给您带来什么错误?您是否授予了internet权限?请发布完整的代码。您是在ui线程上执行网络相关操作还是使用asynctask?@Rohit:我最初提供的端口不正确。然后,正如你提到的,我们还必须授予互联网权限。谢谢。@Raghunandan:最初没有使用asynctask,但给出了错误。然后用那个。无论如何,这个问题的根源是端口号提供不正确。谢谢,谢谢。我将按建议试一试。
http://192.168.1.9:3000/categories/create