不能 post 参数值

Can't post param value

以下代码有助于 post 数据到服务器。它工作得很好,但现在我必须发送一个名为 token 的字符串。

我也使用了不同的方式发送参数,但我仍然收到错误代码

400: bad request

我得到的只是令牌值以某种方式导致了一些问题。如果您尝试代码,它会发送消息,结果如下:

{"durum":"hata","mesaj":"token_gerekli"} 应该是 {"durum":"hata","mesaj":"token_zaman_Aşımı"}

 @Override
    protected Void doInBackground(String... params)
    {
        try
        {
            String link = "http://cvbenim.com/api/v1/isveren/uyeliktamamla";
            URL url = new URL(link);
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.setRequestProperty("User-Agent", "");
            connection.setRequestMethod("POST");
            connection.setDoInput(true);

            String token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjQsImlzcyI6Imh0dHA6XC9cL3Byb2plLmFwcFwvYXBpXC92MVwvZ2lyaXMiLCJpYXQiOjE0NTk5NTA5NTQsImV4cCI6MTQ1OTk3NjE1NCwibmJmIjoxNDU5OTUwOTU0LCJqdGkiOiIwMzRhYmEyY2JmYWEyODg4ZmZjY2ZiZjAxZDA3OTI1YyJ9.Saan9lSUb3FWeFfSNWO4hKyFU-osca0T32CdjC-9Kd8";
            Uri.Builder builder = new Uri.Builder()
                    .appendQueryParameter("token",token)
                    .appendQueryParameter("firma_adi","SomeName")
                    .appendQueryParameter("sektor", "1")
                    .appendQueryParameter("sehir", "2")
                    .appendQueryParameter("ilce", "3")
                    .appendQueryParameter("semt","4")
                    .appendQueryParameter("adres","SomePlace")
                    .appendQueryParameter("telefon","02122342111")
                    .appendQueryParameter("email", "someName@gmail.com")
                    .appendQueryParameter("web","dogu.com");


            String query = builder.build().getEncodedQuery();
            OutputStream os = connection.getOutputStream();
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            writer.write(query);
            writer.flush();

            connection.connect();
            InputStream is ;
            if(connection.getResponseCode()>=400)
                is=connection.getErrorStream();
            else
                is = connection.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line = "0";
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            writer.close();
            os.close();
            is.close();
            String result = sb.toString();
            Log.e("Final Result ",result);

            Message msg = new Message();
            msg.obj = result;
            mh.sendMessage(msg);

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

我收到以下回复:

{"durum":"hata","mesaj":"token_gerekli"}

使用以下代码:

<html>
<head>
</head>
<body>
<form action="http://cvbenim.com/api/v1/isveren/uyeliktamamla" method="post">
<input type="hidden" name="token" value="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjQsImlzcyI6Imh0dHA6XC9cL3Byb2plLmFwcFwvYXBpXC92MVwvZ2lyaXMiLCJpYXQiOjE0NTk5NTA5NTQsImV4cCI6MTQ1OTk3NjE1NCwibmJmIjoxNDU5OTUwOTU0LCJqdGkiOiIwMzRhYmEyY2JmYWEyODg4ZmZjY2ZiZjAxZDA3OTI1YyJ9.Saan9lSUb3FWeFfSNWO4hKyFU-osca0T32CdjC-9Kd8"
<input type="hidden" name="firma_adi" value="SomeName" />
<input type="hidden" name="sektor" value="1" />
<input type="hidden" name="sehir" value="2" />
<input type="hidden" name="ilce" value="3" />
<input type="hidden" name="semt" value="4" />
<input type="hidden" name="adres" value="SomePlace" />
<input type="hidden" name="telefon" value="02122342111" />
<input type="hidden" name="email" value="someName@gmail.com" />
<input type="hidden" name="web" value="dogu.com" />
<input type="submit" />
</form>
</body>
</html>

所以这表明您对 API 或连接或其他内容的阅读存在问题。也就是说,根据您传递的内容,您从 cvbenim.com API 获得了正确的响应(好吧,真的发布到它)。

我找到了解决方案,这是一些服务器问题.如果有人需要它,这是我的解决方案。

           String link = "http://cvbenim.com/api/v1/isveren/uyeliktamamla?token="+token;

           URL url = new URL(link);
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.setRequestProperty("User-Agent", "");
            connection.setRequestMethod("POST");
            connection.setDoInput(true);

            Uri.Builder builder = new Uri.Builder()
                    .appendQueryParameter("firma_adi","SomeName")
                    .appendQueryParameter("sektor", "1")
                    .appendQueryParameter("sehir", "2")
                    .appendQueryParameter("ilce", "3")
                    .appendQueryParameter("semt","4")
                    .appendQueryParameter("adres","SomePlace")
                    .appendQueryParameter("telefon","02122342111")
                    .appendQueryParameter("email", "someName@gmail.com")
                    .appendQueryParameter("web","dogu.com");


            String query = builder.build().getEncodedQuery();
            OutputStream os = connection.getOutputStream();
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            writer.write(query);
            writer.flush();

            connection.connect();