ইনভোক-ওয়েবরয়েস্ট এবং ইনভোক-রেস্টমথোডের মধ্যে পার্থক্য কী?


24

আমি Invoke-WebRequestপাওয়ারশেল থেকে একটি REST- ভিত্তিক এপিআইতে অনুরোধ পোস্ট করার জন্য সফলভাবে ব্যবহার করছি।

Invoke-WebRequest -UseBasicParsing https://my-rest-api.com/endpoint -ContentType "application/json" -Method POST -Body $json

আজ আমি এসেছি Invoke-RestMethodযা আমি যা করছি তার জন্য আরও যথাযথ-নামযুক্ত শোনায়। পার্থক্য কী, এবং একে অপরকে ব্যবহার করার কোনও কারণ আছে?


দাওয়াত-রেস্টমথোডের আলাদা প্যারামিটার সেট রয়েছে। তদতিরিক্ত (সর্বদা বলতে কিছুটা শক্ত) এটি সম্ভবত পরবর্তী পাওয়ারশেল সংস্করণে প্রবর্তিত হয়েছিল।
শেঠ

1
@ শেঠ উভয়টি সংস্করণ 3 এ প্রবর্তিত হয়েছিল এটি উভয় সেমিডলেটগুলির Get-Helpপৃষ্ঠায় পাওয়া যাবে । আমি অনুমান করতে পারি যে Invoke-RestMethodপ্রযুক্তিগতভাবে এটি প্রথম প্রকাশিত হয়েছিল, যেহেতু Get-Helpপ্রান্তের "অনলাইন সংস্করণ" লিঙ্কটির Invoke-WebRequestপৃষ্ঠায় পাওয়া সংখ্যার চেয়ে কম সংখ্যার সাথে ।
মূল

উত্তর:


30

Microsoft.PowerShell.Commands.Utilityঅ্যাসেম্বলিটি পচিয়ে আপনি এটি সন্ধান করতে পারেন ।

মূলত, Invoke-WebRequestডেটাটি এত বেশি পার্সিংয়ের সাথে ডিল করে না। এর সাথে -UseBasicParsingএটি কিছু রেইগেক্স-ভিত্তিক এইচটিএমএল পার্সিং করে। এই সুইচটি ছাড়াই, ডকুমেন্টটি বিশ্লেষণের জন্য এটি ইন্টারনেট এক্সপ্লোরার সিওএম এপিআই ব্যবহার করবে।

এটাই. এটি সর্বদা এইচটিএমএলকে বিশ্লেষণ করার চেষ্টা করবে।

Invoke-RestMethodঅন্যদিকে জেএসএন এবং এক্সএমএল সামগ্রী সমর্থন করার কোড রয়েছে। এটি একটি উপযুক্ত ডিকোডার সনাক্ত করার চেষ্টা করবে। এটি এইচটিএমএল সমর্থন করে না (অবশ্যই এক্সএমএল-কমপ্লায়েন্ট এইচটিএমএল বাদে)।

উভয়ই প্রকৃত এইচটিটিপি অনুরোধ করতে একই মূল যুক্তি ভাগ করে। এটি কেবল ফলাফল প্রক্রিয়াকরণের ক্ষেত্রেই তাদের পার্থক্য রয়েছে।

দেখাই বিশ্বাস!

PS C:\Users\fuzzy> (Invoke-RestMethod https://httpbin.org/headers).headers

Connection Host        User-Agent
---------- ----        ----------
close      httpbin.org Mozilla/5.0 (Windows NT; Windows NT 10.0; de-DE) WindowsPowerShell/5.1.15063.483

PS C:\Users\fuzzy> Invoke-WebRequest -UseBasicParsing https://httpbin.org/headers


StatusCode        : 200
StatusDescription : OK
Content           : {
                      "headers": {
                        "Connection": "close",
                        "Host": "httpbin.org",
                        "User-Agent": "Mozilla/5.0 (Windows NT; Windows NT 10.0; de-DE)
                    WindowsPowerShell/5.1.15063.483"
                      }
                    }

RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    Access-Control-Allow-Origin: *
                    Access-Control-Allow-Credentials: true
                    X-Processed-Time: 0.00075101852417
                    Content-Length: 180
                    Content-Type: application/json...
Forms             :
Headers           : {[Connection, keep-alive], [Access-Control-Allow-Origin, *], [Access-Control-Allow-Credentials,
                    true], [X-Processed-Time, 0.00075101852417]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        :
RawContentLength  : 180

4

systemcenterautomation.com এ সম্পর্কে একটি ব্লগ পোস্ট করেছে । উপসংহার:

Invoke-RestMethodএক্সএমএল এবং জেএসএন ফলাফলের সাথে ডিল করার ক্ষেত্রে অনেক ভাল, অন্যদিকে Invoke-WebRequestসোজা এইচটিএমএল ফলাফলের সাথে কাজ করার ক্ষেত্রে আরও ভাল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.