رفتن به مطلب
  • 0

ارسال درخواست به API بازار (روش جدید)


berayan

سوال

سلام ،

بازار  روش ارسال درخواست به API     تغییر داده ، و الان من تو پیاده سازیش به مشکل خوردم ،

مستنداتش اینه 

https://developers.cafebazaar.ir/fa/guidelines/in-app-billing/api/postman-and-bazaar-api-new

ولی در مکاتبه با پشتیبانی مستندات مشکلش این بود که متد GET  و Params گفته در صورتی که پشتیبانی گفت از POST و Headers باید استفاده بشه که درست بود ، اما با نرم افزار Postman .

حالا نمیدونم چطوری باید با کد پیادش کنم ، قبلا برا اکسس توکن از روش زیر استفاده میکردم ، کدش با این جابجا کردم .

 protected String doInBackground(String... arg0) {
        try {
            String url1 = "https://pardakht.cafebazaar.ir/devapi/v2/api/applications/پکیج نیم/active-subscriptions/توکن اشتراک";
            URL url = new URL(url1);
            JSONObject post = new JSONObject();
            post.put("CAFEBAZAAR-PISHKHAN-API-SECRET", "توکن برنامه");
            Log.e("Headers", post.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(post));
            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 "false : " + responseCode;
            }
        } catch (Exception e) {
            return "Exception: " + e.getMessage();
        }
    }

اما خطا بر میگره با کد 401 ، ولی همین دیتا هارو با نرم افزار Postman  در  میفرستم ، اطلاعات خرید کاربر بر میگره ،

دوستان لطفا راهنمایی کنید ، تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

حل شد

 

باید از روش زیر استفاده میکردم

    protected String doInBackground(String... arg0) {
        try {
            URL url = new URL("https://pardakht.cafebazaar.ir/devapi/v2/api/applications/پکیج نیم/active-subscriptions/توکن اشتراک/");
            HttpURLConnection myConnection = (HttpURLConnection) url.openConnection();

            myConnection.setRequestProperty("CAFEBAZAAR-PISHKHAN-API-SECRET" , "توکن برنامه");
            

            int responseCode = myConnection.getResponseCode();
            if (responseCode == HttpsURLConnection.HTTP_OK) {
                BufferedReader in = new BufferedReader(new
                        InputStreamReader(
                        myConnection.getInputStream()));
                StringBuffer sb = new StringBuffer("");
                String line = "";
                while ((line = in.readLine()) != null) {
                    sb.append(line);
                    break;
                }
                in.close();
                return sb.toString();
            } else {
                return "false : " + responseCode;
            }
        } catch (Exception e) {
            return "Exception: " + e.getMessage();
        }
    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۱۹ ساعت قبل، berayan گفته است:

حل شد

 

باید از روش زیر استفاده میکردم

    protected String doInBackground(String... arg0) {
        try {
            URL url = new URL("https://pardakht.cafebazaar.ir/devapi/v2/api/applications/پکیج نیم/active-subscriptions/توکن اشتراک/");
            HttpURLConnection myConnection = (HttpURLConnection) url.openConnection();

            myConnection.setRequestProperty("CAFEBAZAAR-PISHKHAN-API-SECRET" , "توکن برنامه");
            

            int responseCode = myConnection.getResponseCode();
            if (responseCode == HttpsURLConnection.HTTP_OK) {
                BufferedReader in = new BufferedReader(new
                        InputStreamReader(
                        myConnection.getInputStream()));
                StringBuffer sb = new StringBuffer("");
                String line = "";
                while ((line = in.readLine()) != null) {
                    sb.append(line);
                    break;
                }
                in.close();
                return sb.toString();
            } else {
                return "false : " + responseCode;
            }
        } catch (Exception e) {
            return "Exception: " + e.getMessage();
        }
    }

 

درود

برای ارتباط با سرور بهتره از کتابخونه های قدرتمندتری مثه رتروفیت یا okhttp استفاده کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...