Articles of post

Android Retrofit | 发布自定义对象(将json发送到服务器)

我想知道如何使用改造将自定义对象发送到我的API,如下所示: @POST(URL_ORDERS) public void newOrder(Order order, Callback success); 这是我在服务器上解析它的方法 public function store() { if(Auth::check()){ $order = Input::get(); $table = $order->table; $items = $order->items; if(!$table->taken){ $table->taken = true; $order->push(); $table->push(); return true; } } return false; } 出于某种原因,我得到了 06-04 20:45:59.275 6085-6306/com.tesis.restapp.restapp W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x40aae210) 06-04 20:45:59.285 6085-6306/com.tesis.restapp.restapp E/AndroidRuntime﹕ FATAL EXCEPTION: Retrofit-Idle […]

Retrofit 2 – 当响应状态为422(不可处理的实体)时,响应主体为null

我正在使用Retrofit在我的Web服务器上发出POST请求。 但是,当响应状态为422 (unprocessable entity)不可422 (unprocessable entity)时,我似乎无法获得响应体。 响应正文始终为null 。 我想知道我做错了什么或者是否有解决方法。 因为我在Postman的请求中使用相同的json,并且它正常返回正文。 这是方法: @Headers(“Content-Type: application/vnd.api+json”) @POST(“my_endpoint”) Call postEntry(@Header(“Authorization”) String authorization, @Body JsonObject json); 正文是一个JsonObject,我没有像文档说的那样序列化。 但我不认为这是问题所在。 任何帮助表示赞赏,谢谢。

通过改造在POST请求中发送JSON

我已经多次看到这个问题并尝试了很多解决方案但是没有解决我的问题,我正在尝试使用改造在POST请求中发送json,我不是编程专家所以我可能会错过一些明显的东西。 我的JSON是一个字符串,看起来像这样: {“id”:1,”nom”:”Hydrogène”,”slug”:”hydrogene”} 我的界面(称为APIService.java )看起来像这样: @POST(“{TableName}/{ID}/update/0.0”) Call cl_updateData(@Path(“TableName”) String TableName, @Path(“ID”) String ID); 我的ClientServiceGenerator.java看起来像这样: public class ClientServiceGenerator{ private static OkHttpClient httpClient = new OkHttpClient(); public static S createService(Class serviceClass, String URL) { Retrofit.Builder builder = new Retrofit.Builder() .baseUrl(URL) .addConverterFactory(GsonConverterFactory.create()); Retrofit retrofit = builder.client(httpClient).build(); return retrofit.create(serviceClass); }} 最后这是我活动中的代码 APIService client = ClientServiceGenerator.createService(APIService.class, “http://mysiteexample.com/api.php/”); Call call = […]

如何将JSon作为BODY发送到Android应用程序的服务器POST请求中?

我正在开发我的第一个Android应用程序。 我想要做的是对REST服务的POST请求我希望此请求的BODY是JSON字符串。 我正在使用谷歌的GSON生成发送到服务器的JSON。 这是执行POST请求的代码: HttpPost requisicao = new HttpPost(); requisicao.setURI(new URI(uri)); requisicao.setHeader(“User-Agent”, sUserAgent); requisicao.setHeader(“Content-type”, “application/json”); HttpResponse resposta = null; //I can see the json correctly print on log with the following entry. Log.d(TAG, “JSon String to send as body in this request ==>> ” + jsonString); //than I try to send JSon using setEntityMethod StringEntity […]

使用Android发送HTTP发布请求

我一直试图从SO和其他网站上的大量例子中学习,但我无法弄清楚为什么我一起攻击的例子不起作用。 我正在构建一个小概念validation应用程序来识别语音并将其作为POST请求发送给node.js服务器。 我已经确认语音识别工作,服务器正在接收来自常规浏览器访问的连接,因此我开始相信问题出在应用程序本身。 我错过了一些小而愚蠢的东西吗? 没有错误被抛出,但服务器永远不会识别连接。 提前感谢任何建议或帮助。 相关Java(主要活动和必要的AsyncTask): protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1001) { if (resultCode == RESULT_OK) { ArrayList textMatchList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); if (!textMatchList.isEmpty()) { String topMatch = textMatchList.get(0); PostTask pt = new PostTask(); pt.execute(topMatch); } } } } private class PostTask extends AsyncTask { @Override protected […]

使用Android提交到Google电子表格表单

第一次在这里问一个问题。 通常我可以在不必询问的情况下find答案,但这次我被困住了,无法弄清楚我错过了什么。 我只是想让我的Android应用在网站上填写表格并提交。 我不需要应用程序对发回的任何数据执行任何操作,只需填写表单并提交即可。 基本上我正在尝试收集投票应用程序的结果。 我认为表单提交很简单所以我创建了一个Google电子表格并用它制作了一个表单。 我想我会将Android应用程序指向表单,然后我会在电子表格中包含所有数据供以后查看。 我无法让Android应用程序实际填写表单。 这是资源。 形成 电子表格 private void submitVote(String outcome) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(“https://spreadsheets.google.com/spreadsheet/formResponse?hl=en_US&formkey=dDlwZzh4bGFvNFBxUmRsR0d2VTVhYnc6MQ&ifq”); List results = new ArrayList(); results.add(new BasicNameValuePair(“entry.0.single”, cardOneURL)); results.add(new BasicNameValuePair(“entry.1.single”, outcome)); results.add(new BasicNameValuePair(“entry.2.single”, cardTwoURL)); try { post.setEntity(new UrlEncodedFormEntity(results)); } catch (UnsupportedEncodingException e) { // Auto-generated catch block Log.e(“YOUR_TAG”, “An […]

如何在Android上的HttpPost中发送unicode字符

我正在尝试在我的应用中允许多语言支持,这使得HTTPpost可以上传新消息。 为了支持日语和其他非拉丁语言,我需要做什么? 我的代码目前看起来像这样: //note the msg string is a JSON message by the time it gets here… private String doHttpPost(String url, String msg) throws Exception { HttpPost post = new HttpPost(url); StringEntity stringEntity = new StringEntity(msg); post.setEntity(stringEntity); return execute(post); }

将Cookie设置为Android中的webView

我在检查用户名或密码是否正确时从服务器获取HttpResponse 。 当我在webview加载url ,我希望webView拥有cookie(我使用postData()得到的答案存储在webView 。我希望webView获取cookie并加载存储在webview中的cookie的url。 我得到了回应。 public HttpResponse postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“https://example.com/login.aspx”); try { List nameValuePairs = new ArrayList(2); nameValuePairs.add(new BasicNameValuePair(“txtUsername”, “user”)); nameValuePairs.add(new BasicNameValuePair(“txtPassword”, “123”)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); String responseAsText = EntityUtils.toString(response.getEntity()); Log.v(TAG , “Response from req: ” + responseAsText); return responseAsText; } catch […]

如何将Cookie会话ID放入截击请求?

所以,我有这个代码用截击发出一个POST请求: public class MainActivity extends AppCompatActivity { Button btnSearch; ProgressDialog loadingDialog; ListView lvResult; String session_id; RequestQueue queue; MyCookieManager myCookieManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnSearch = (Button) findViewById(R.id.btnSearch); lvResult = (ListView) findViewById(R.id.lvResult); loadingDialog = new ProgressDialog(MainActivity.this); loadingDialog.setMessage(“Wait.\nLoading…”); loadingDialog.setCancelable(false); myCookieManager = new MyCookieManager(); requestCookie(); //FIRST CALL TO GET SESSION ID btnSearch.setOnClickListener(new View.OnClickListener() { […]

无法抓取http POST文件上传进度(Android)

我正在开发一个Android应用程序,使用户能够将文件上传到Twitpic等服务。 POST上传完成后没有任何外部库,工作正常。 我唯一的问题是,我无法获取任何进展,因为所有上传都在我收到响应时完成,而不是在将字节写入输出流时完成。 这是我做的: URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); conn.setRequestMethod(“POST”); conn.setRequestProperty(“Connection”, “Keep-Alive”); conn.setRequestProperty(“Content-Type”, “multipart/form-data;boundary=” + boundary); DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); 然后我将表单数据写入dos,现在这里并不重要。 之后我自己编写文件数据(从“in”读取,这是我要发送的数据的InputStream): while ((bytesAvailable = in.available()) > 0) { bufferSize = Math.min(bytesAvailable, maxBufferSize); byte[] buffer = new byte[bufferSize]; bytesRead = in.read(buffer, 0, bufferSize); dos.write(buffer, 0, bytesRead); […]