اطلاعیه

Collapse
No announcement yet.

ارسال اطلاعات با متد POST در ماژول sim

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارسال اطلاعات با متد POST در ماژول sim

    سلام خدمت اساتید
    تا حالا کسی با ماوول sim به روش POST اطلاعات رو به یه سایت ارسال کرده ؟؟؟؟؟؟؟

    #2
    پاسخ : ارسال اطلاعات با متد POST در ماژول sim

    من تا یه جایی رفتم ولی به مشکل خوردم :question:

    کد:
    AT+HTTPINIT
    AT+HTTPPARA="CID",1
    AT+HTTPPARA="URL","http://site.ir/page.aspx"
    AT+HTTPDATA=10,10000
    name=1234456
    AT+HTTPACTION=1

    ظاهرا نمیتونم به کنترل name که تو سایت وجود داره بفرستم چون که سایت اطلاعات من رو null دریافت میکنه

    (در ضمن اگر بخوام با متد get بفرستم این شکلی است:
    کد:
    get http://site.ir/page.aspx?name=123456
    و درست کار میکنه)

    دیدگاه


      #3
      پاسخ : ارسال اطلاعات با متد POST در ماژول sim

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

      دیدگاه


        #4
        پاسخ : ارسال اطلاعات با متد POST در ماژول sim

        سلام تشکر آقای حسینی پور
        ولی یه مشکل دیگه هم get داره و اون امنیت نداشتن ارسال اطلاعاته
        البته این روهم بگم که ظاهرا در ارسال اطلاعات چه به صورت get ویا به صورت post ویا حتی با ftp ظاهرا بازهم محدودیت 1280 کاراکتر ارسالی هست که باید با تکرار دستور ادامه اطلاعات رو فرستاد
        یعنی این محدودیت ذاتی هر نوع ارسالی است
        شما تا حالا امتحانش کردید؟

        دیدگاه


          #5
          پاسخ : ارسال اطلاعات با متد POST در ماژول sim

          نوشته اصلی توسط ali1618
          سلام تشکر آقای حسینی پور
          ولی یه مشکل دیگه هم get داره و اون امنیت نداشتن ارسال اطلاعاته
          البته این روهم بگم که ظاهرا در ارسال اطلاعات چه به صورت get ویا به صورت post ویا حتی با ftp ظاهرا بازهم محدودیت 1280 کاراکتر ارسالی هست که باید با تکرار دستور ادامه اطلاعات رو فرستاد
          یعنی این محدودیت ذاتی هر نوع ارسالی است
          شما تا حالا امتحانش کردید؟
          جسارتا اون امنیت تو مرورگره ، تو کاربردی که مورد نظر ماست امنیت گت با پست هیچ فرقی نداره !
          تا جایی که خاطرمه تو پست میشد داده های بیشتری رو منتقل کرد
          بله بارها امتحانش کردم ، یه برنامه با پی اچ پی نوشتم که داده های دریافتی رو تو مای اس کیو ال ذخیره میکرد و بعدا برا کاربر نشون میداد
          فعلا این دو تا سایت را داشته باشین داده ها یی رو که بهش ارسال کنین براتون نشون میده (فک میکنم پست تو اینا جواب میداد ،مطمعن نیستم !)
          کلا این ماژول http اش یکم لق میزنه داده های منو برنامه ای که با ASP.NET یکی از دوستان نوشته بود اصلا قادر به دریافت داده نبود ، پی اچ پی رو فقط گت میگرفت و این دو تا سایت فک کنم هم گت و هم پست جواب میداد
          http://requestb.in

          http://www.putsreq.com
          زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

          دیدگاه


            #6
            پاسخ : ارسال اطلاعات با متد POST در ماژول sim

            یه نفر هم تاحالا کار نکرده؟؟؟؟ :angry:
            آقای حسینی من به سایتهایی که شما گفتید ارسال کردم و فهمیدم مشکل از کجاست
            در ارسال به روش POST باید اطلاعات در یک فرم باشه ، که مشکل همینجاست
            اگه پست اول رو ببینید:

            نوشته اصلی توسط ali1618
            من تا یه جایی رفتم ولی به مشکل خوردم :question:

            کد:
            AT+HTTPINIT
            AT+HTTPPARA="CID",1
            AT+HTTPPARA="URL","http://site.ir/page.aspx"
            AT+HTTPDATA=10,10000
            name=1234456
            AT+HTTPACTION=1

            ظاهرا نمیتونم به کنترل name که تو سایت وجود داره بفرستم چون که سایت اطلاعات من رو null دریافت میکنه

            (در ضمن اگر بخوام با متد get بفرستم این شکلی است:
            کد:
            get http://site.ir/page.aspx?name=123456
            و درست کار میکنه)
            من نمیدونم چی شکلی باید یک فرم به نام name بسازم و مقدار 123456 رو براش در نظر بگیرم و به سایت بفرستم تا سایت اون رو به عنوان اطلاعات یک فرم بگیره

            البته این مشکل برای ارسال get نیست چون اونجا فرم نیست بلکه query string داره و هرچی ادامه دیتا بنویسی درسته.

            پس الان مشکل اینجاس که:
            یه جوری دیتا رو بفرستی که سایت مقابل اون رو به عنوان یک فرم دریافت کنه؟!

            دیدگاه


              #7
              پاسخ : ارسال اطلاعات با متد POST در ماژول sim

              ببینین تا جایی که من یادمه این همون قالبیه که سیم کام تو ماژول تعریف کرده و شما هم دارین طبق همون داده ارسال میکنین
              یعنی شما نمیتونین داده ها رو با فرمت مورد نظر خودتون بفرستین ، تو مرحله یه کامند میدین و یه پاسخ میگیرین و متغرهاتون رو با محتواش وارد میکنین
              حالا از صحبت هاتون در مورد فرم من چیزی نفهمیدیم
              ولی اگه اصرا به پست دارین :
              از اون جایی که Http چیزی بجز ارسال کاراکتر روی tcp نیست (در واقع مشابه همین AT command روی usart) بنا براین شما باید یه کانکشن tcp با سیم900 تعریف کنین و کاراکترها را مطابق با قرار داد http به سرور ازسال کنین ، غالب و فرمت متنی Http رو میتونین از ویکی پدیا مطالع کنین
              زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

              دیدگاه


                #8
                پاسخ : ارسال اطلاعات با متد POST در ماژول sim

                سلام مشکل سر همون قالب و ساختار ارسال اطلاعاته

                دیگه واضح با مثال میگم تا عین مشکل رو ببینید:

                ما می تونیم در همین ساختار ارسال اطلاعات با HTTP AT COMMAND ها هم با متد GET و هم با متد POST اطلاعات رو بفرستیم.
                که ما تو روش ارسال با POST مشکل داریم. برای واضح شدن هردو رو توضیح میدم:
                در روش GET بعد از اتصال به tcp و گرفتن ip میفرستیم:
                کد:
                AT+HTTPINIT
                AT+HTTPPARA="CID",1
                AT+HTTPPARA="URL","http://requestb.in/qpu8eyqp"
                AT+HTTPDATA=12,10000
                name=1234456
                AT+HTTPACTION=0
                این دستورات مقدار name=123456 رو بصورت query string به سایت requestb.in که خودتون معرفی کردین میفرسته
                یعنی توی سایت اطلاعاتی که دریافت میشه از نوع get و با مقدار دهی کنترل name با مقدار 123456 می باشد. که کاملا درست است.

                و در روش POST بعد از اتصال به tcp و گرفتن ip میفرستیم:

                کد:
                AT+HTTPINIT
                AT+HTTPPARA="CID",1
                AT+HTTPPARA="URL","http://requestb.in/qpu8eyqp"
                AT+HTTPDATA=12,10000
                name=1234456
                AT+HTTPACTION=1
                در این ارسال، سایت ارسال اطلاعات به روش POST رو تایید میکنه ولی چیزی به عنوان مقدار دریافتی کنترل name دریافت نمیکنه.
                حالا من یه سرچی زدم تا ببینم در ارسال POST چه جوری باید اطلاعات رو فرستاد که تو سایت edaboard هم همین مساله مطرح شده بود و طرف اینجوری ارسال کرده بود و باز هم مشکل داشت:

                کد:
                AT+HTTPINIT
                AT+HTTPPARA="CID",1
                AT+HTTPPARA="URL","http://requestb.in/qpu8eyqp"
                AT+HTTPDATA=138,10000
                POST http://requestb.in/qpu8eyqp
                Content-Length: 414
                Content-Type: application/x-www-form-urlencoded
                
                var_a=444&var_b=sample+data
                AT+HTTPACTION=1
                که این روش هم جواب نداد :angry:

                رفتم یه سرچ دیگه زدم تا ببینم تبدیل شده ارسال اطلاعات به روش POST تو قالب html چیه، که به نتیجه زیر رسیدم:

                کد:
                POST / HTTP/1.1
                Host: requestb.in
                Content-Type: application/x-www-form-urlencoded
                Content-Length: 13
                
                say=Hi&to=Mom
                این هم جواب نداد :angry:
                البته این دوتا رو به روش های مختلف و زیاد دیگه هم با هم ادغام کردم ولی بازهم به نتیجه ای نرسیدم. oo:

                اما جالبه که برای تست اینکه اصلا سایت درسته و اطلاعاتی که به روش POST میفرستی چه جوری دریافت میشه، تست رو با یه فایل php انجام دادم وکد زیر رو توش نوشتم:
                کد:
                <html>
                <head>
                </head>
                 
                <body>
                 
                <form method="post" action="http://requestb.in/qpu8eyqp">
                <input type="text" name="example_text">
                <input type="submit" value="Submit">
                </form>
                 
                </body>
                </html>
                که دیدم تو سایت کاملا صحیح مقدار فرم سابمیت میشه و دریافت میشه.

                پس دوباره اصل مشکل رو میگم:

                تو قسمت ارسال دیتا در روش POST چه جوری و با چه ساختاری باید اطلاعات رو بفرستی؟؟؟

                این هم یک نمونه دیتا که ظاهرا درسته ولی جواب نداد:
                [code=c]
                POST http://requestb.in/qpu8eyqp
                Content-Length: 11
                Content-Type: application/x-www-form-urlencoded

                name=123456[/code]

                دیدگاه


                  #9
                  پاسخ : ارسال اطلاعات با متد POST در ماژول sim

                  ببینید ارتباط با ماژول را به چشم این فرم های آماده اداری ببینین که شما فقط نام و مشخصات خودتون رو توش وارد میکنین و به اداره مورد نظر ارسال میکنین
                  مثلا :
                  بسمه تعالی
                  ریاست محترم اداره ------
                  اینجانب -------- بدلیل ---- نیاز به تعداد ---- عدد و غیره
                  حالا شما فقط باید تو اون قسمت های خالی داده هاتون رو بنویسین.در صورتی که شما و همچنین بنده اطلاعات خودمون رو تو اون قسمتها مینویسیم و ارسال میکنیم و سایت دریافت نمیکنه ! دلیل این رو نمیدونم ولی میتونه وجود باگ در فریم ور باشه که متاسفانه برای بنده حتی با پدیت ماژول هم حل نشد.
                  --------------------
                  قسمت دوم :
                  حالا شما و اون فرد تو ادابورد اومدین تو پست آخرین تنها تو قسمت خالی که مثلا باید نام رییس اداره رو بنویسین از اول کد نامه رو نوشتین،در واقع

                  سمه تعالی
                  ریاست محترم اداره
                  بسمه تعالی
                  ریاست محترم اداره ------
                  اینجانب -------- بدلیل ---- نیاز به تعداد ---- عدد و غیره

                  اینجانب و ...
                  خب معلومه که داده به درستی دریافت نمیشه ، چون اینجا خود ماژول دستورات http
                  POST / HTTP/1.1
                  Host: requestb.in
                  Content-Type: application/x-www-form-urlencoded
                  Content-Length: 13

                  say=Hi&to=Mom
                  رو میفرسته و این دست شما نیست تا این اطلاعات رو وارد کنین ، همونطور که گفتم ماژول نام و url و متغیرهاتون رو از شما میگیره و خودش تو اون غالب http میزاره و برای سایت میفرسته
                  دوباره تکرار میکنم اگه اصرار به پست دارین باید یه کانکشن tcp ایجاد کنین و بعدا کاراکترها رو به ترتیب مثل همون مدل یعنی
                  POST / HTTP/1.1
                  Host: requestb.in
                  Content-Type: application/x-www-form-urlencoded
                  Content-Length: 13

                  say=Hi&to=Mom
                  ارسال کنین که بر خلاف مدل Http اینجا همه چی دست خودتونه و باید درخواست رو به این صورت وارد کنین
                  اگر منظورمو متوجه نتشدین ،بفرمایین تا بیشتر توضیح بدم
                  زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

                  دیدگاه

                  لطفا صبر کنید...
                  X