PDA

View Full Version : Get Post Data in C# Problems



mokamel
پنج شنبه 12 شهریور 1394, 21:35 عصر
ُسلام
دوستان من تو سایت هایی مثل آشیانه نتونستم جواب سوالم رو بگیریم . احتمال زیاد سوادش و نداشتن . گفتم از شما هم بپرسم که عالمی دارین .


من می خوام در یک برنامه ویندوزی به زبان سی شارپ . به یک سایت دولتی امریکا یک رکوئست بدوم و یک پاسخ بگیریم . مشکل اینه که سایت توکن تولید می کنه و من نمیدونم چطوری باید مد نویسی کنم که تو برنامه ام این مشکل و نخورم .
سایت
locatorplus.gov/cgi-bin/Pwebrecon.cgi
هستش و برای راحتی کاار شما صفحه ای که درخواست می خوام بدم در زیر هستش :
locatorplus.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=9781444174274&Search_Code=FT


البته باید یر روی لینکی که نمایش میده کلیک کنید و بعد در صفحه جدید اون پایین یک دکمه به نام SAve هست رو اون که کلیک کنید یه فایل رو سیستم ذخیره میشه .
من میخوام با برنامه سی شارپ این فایل رو بگیریم . اما نمیشه .


دقت کنید که تمامی اطلاعاتی که موزیلا در هنگام کلیک بر روی دکمه به سرور می فرسته اینهاست :





http://locatorplus.gov/cgi-bin/Pwebrecon.cgi


POST /cgi-bin/Pwebrecon.cgi HTTP/1.1
Host: locatorplus.gov
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://locatorplus.gov/cgi-bin/Pwebrecon.cgi?Search_Arg=9781444117936&Search_Code=FT*&PID=On6_H--JolE09uNDouATOBoe-&SEQ=20150903134819&CNT=25&HIST=1
Cookie: TS01925844=01990818ad32fbff0c2eb94ca593ecd2872b666 373fd068cce55e6a08526f2f7090fd894f8; TS01925844_28=010ff9353e4f76d469b5b5f9a6af7d7d9965 dcf8fe4efb04657d12f144ff9d339c28f08301f20847b07d60 bc945115e4e8631a406e
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 220
Search_Arg=9781444117936&Search_Code=FT*&SL=&PID=lloXK-DN7ObHyEmeYGkpcUNdx&CNT=25&ti=1%2C1&SID=1&RID=1571108&BIB=1571108&PID=lloXK-DN7ObHyEmeYGkpcUNdx&SEQ=20150903134832&RD=6&SAVE=Print%2FSave&MAILADDY=&EMAILADDRESS=None
HTTP/1.1 200 OK
Date: Thu, 03 Sep 2015 17:48:48 GMT
Keep-Alive: timeout=15, max=100
Content-Type: text/plain
X-VIP-Info: 130.14.16.150:80
X-Pool-Info: /Common/webvoyage_p 10.1.174.3 80
Transfer-Encoding: chunked
Connection: keep-alive







دفت کنید که لینک دانلود فایل نمایش داده نمیشه چون بصورت POst ارسال می شه . اما من لینک دالنود رو پیدا کردم اما نمی دونم httpwebrequest رو باید با توجه به این المان ها چطوری تنظیم کنم . یعنی کوکی ها و رفر ها و ....

erfan_urchin
جمعه 13 شهریور 1394, 01:25 صبح
دوست عزیز نمیدونم منظورت رو درست فهمیدم یا نه ولی فکر کنم میخوای از طریق web browser توی C# روی باتن save کلیک کنی تا یه فایل دریافت بشه
من روی این سایتی که شما دادین تست نکردم چون دقیقا نفهمیدم باید روی کدوم دکمه کلیک کنم
ولی من روی سایت گوگل از این کد استفاده میکنم
webBrowser1.Document.GetElementById("btnK").InvokeMember("click");
اگه روی هر باتن راست کلیک کنی و Inspect Element رو انتخاب کنی، name اون باتن رو نشون میده و name باتن سرچ، تو سایت گوگل btnK هستش. حالا شما باید به جای btnK نام اون باتن SAVE رو پیدا کنی و ازش استفاده کنی
اگرم منظورت رو درست متوجه نشدم شرمنده

mokamel
شنبه 14 شهریور 1394, 00:18 صبح
سلام
دوست عزیز ازینکه پاسخ دادین ممنون اما این راه حل برای کاری که من می خوام خوب نیست .
چون تو این حالت پنجره ذخیره فایل نمایش داده میشه . من میخوام این پنجره تنایش داده نشه و فایل بصورت اتوماتیک و البته با اسمی که من می خوام نه اسم خود فایل روی سرور طرف که هر چی هست . ذخیره بشه . آخرش و نمیدونم درست توضیح دادم یا نه
اما می خوام
1- پنجره ذخیره فایل نمایش داده نشه و فایل با زدن همون دکمه روی هارد ذخیره بشه
2- اسم فایل رو خودم تو برنامه وارد کنم و طبق اون اسم ذخیره بشه . ( در حالت عادی وقتی پنجره SAVR باز میشه ما می تونیم که اسم فایل رو خودمون انتخاب کنیم . من می خوام ت وبرنامه و با کد بتونم این کار رو کنم )