I use Fiddler for a number of tasks, and until recently one of those included testing and debugging my REST based services. Makes sense right? Given that Fiddler was built for debugging or “fiddling” with HTTP based communication.
For me, a typical Fiddler debugging session goes something like this…
Launch Fiddler and try not to let your eyes cross while you scan its numerous tabs and battleship gray beauty.
OK, technically there’s not that many tabs and it’s not that much of a battleship. But if it’s been a while since you’ve played with the app then you know what I’m talking about.
After locating the “Composer Tab” I’d then begin typing up a request. After sending it off, I’ll then switch to the “Inspectors” tab, after highlighting the corresponding Session in the left most pane, and select one of the many viewing formats available to me to review the response.
Now, let me stop here and say that I’m not trying to be critical of Fiddler. Well, maybe just a little. Fiddler is a powerful and sophisticated tool for web based debugging that boasts an average of 9,000 downloads each day. When it comes to inspecting HTTP based communication, there isn’t much it can’t do. However, in my situation it was about finding the right tool for the job. I didn’t want the weight of a “multi-tool” (e.g. Swiss Army Knife) when the only part I was using was the knife.
It was around this time that a colleague of mine at Fairway mentioned how he had been using a Google Chrome extension called Dev HTTP Client to test some REST services he had been writing. While the main purpose of Dev HTTP Client is sending/receiving custom HTTP requests/responses, the extension offers simple yet valuable features that weren’t available in tools like Fiddler. These included the ability to save a request for later use and the ability to define contexts to allow you to easily switch between various environments (e.g. from a test environment to production) without modifying request declaration. Additionally, all of this was available with a friendly UI/UX.
To download the extension, you can go to http://chrome.google.com/webstore/ and search for “Dev HTTP Client”. From there, you can read additional details about the extension and install it by clicking “Add To Chrome”. Once installed, you can launch the extension by opening a new tab and selecting the “Apps” section at the bottom of the tab (next to “Most visited”). Alternatively, you can type “dev http client” into the address bar (omnibox).
Once loaded you’ll see a very simple and visually appealing UI.
Another bonus? When I switched from writing ASP.NET on Windows to writing Java on a Mac, I was able to continue using HTTP DEV Client since it’s supported on both platforms. Fiddler is only supported on Windows.
Will I still continue to use Fiddler? Absolutely. It’s a tool I’ll always want to have around when I’m inspecting HTTP based communication. But if I’m simply testing, say, RESTful Controller methods in my Spring MVC web app, Dev HTTP Client is the proper tool for the job.
Leave a comment
- iOS Unit Testing With OCMock
- Why Stakeholders Need To Be Involved In Scrum
- NuGet Config File Transformation Causes Duplicate Entries On Update
- Load Testing with Locust on Windows
- Writing A Custom LINQ Provider With Re-linq
- AutoMapper Profile Organization
- Rails 3.2: A Nested-Form Demo Part 4: Switch to Targeting Computer!
- SharpRepository: Configuration
- Rails 3.2: A Nested-Form Demo, Part 3: We’re Starting Our Attack Run!
- Rails 3.2: A Nested-Form Demo, Part 2: Accelerate to Attack Speed!
- Rails 3.2: A Nested-Form Demo, Part 1: All Wings Report In!
- iOS Behind the Curve
- Distributed Transaction Coordinators, Port 135, and Firewalls – Oh My!
- SharpRepository: Getting Started
- Find Performance Problems Using JMeter, MySQL and Xdebug/Webgrind
- Taming Hot Key Context Shifting When Running A Windows VM In Virtualbox On OSX
- Integrating Twitter’s Bootstrap Into Your Project
- Mobile payments, tags and more using NFC
- Stress Pig
- Dear Client Services, What Works?
- What Would Steve Do?
- Still Using Fiddler to Test & Debug Your REST Services?
- Write-through and Generational Caching Make a Great Team
- Thinking Recursively
- Development Incentives, What’s the Payoff?
- How do you like them Apples?
- “Optional” Software Development Practices Series — Code Review
- Adding Images to Select Lists in MVC3
- “Optional” Software Development Practices Series
- You Get What You Pay For…
- Outsourcing Safety Tips
- Facebook IPO
- The Ballad of Tim Toady
- The Little Schemer
- Newsflash: Mom leaves tech job at 5p.m.
- I <negative_emotion> Windows 8!
- Prefix vs. Postfix Increment and Decrement Operators in C++
- Corporate videos: viral boon or epic fail?
- Recruitin’ Time!
- Reference vs. pointer parameters in C++
- The IE8 "hover" Bug: The Most Awesome IE Bug Ever?
- When is perfect perfect enough?
- SOPA/PIPA: Anti-Censorship Protest or Techies Revenge?
- A Decade of Fairway
- Handling Session Timeout Gracefully
- Generating Software Diagrams
- The Audacity of Nope
- The Origins of Culture
- Scrum Overview in Prezi – not another boring slideshow
- Numbers don’t lie: LinkedIn Statistics
- What is your favorite software development tool?
- Best Practices for Selecting Onshore, Nearshore or Offshore Information Technology Outsourcing (ITO) Providers
- Sign of the Times
- Advantages and Risks of Offshoring, Nearshoring or Onshoring
- Does Outsourcing Mean Offshoring?
- Too little, too late?
- New Favorite Lunch Spot
- Why should I care about functions as first-class citizens?
- PHP Remote Debugging with XDebug and NetBeans
- Installing SubText with Web PI
- ROI Primer
- Learn Domain-Driven Design
- Learn Behavior-Driven Development
- Mario Kart Tournament
- F# in 90 Seconds
- Website Vulnerabilities
- Scrum Overview
- Language Club
- Top 12 Favorite Podcasts Ever…
- Fairway Dart Tournament
- Learn Lean Software Development and Kanban Systems
- Android – Eclipse Quick Start
- Learn Functional Programming
- Backup & Restore Strategy
- Smartphone Screens – Another Wireless Variable
- Wireless Application Market
- Head First AOP