Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6253545
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T14:01:09+00:00 2026-05-24T14:01:09+00:00

I wanted to access a TFS server, and download the dynamically produced Scrum Burndown

  • 0

I wanted to access a TFS server, and download the dynamically produced “Scrum Burndown chart” on a regular basis, in order to re-use it in a seperate report (ie a pdf)
Yes, there is a lot of reporting going around …

How do I find the correct URL in the server to download, and how do I get around the permissions problems?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T14:01:09+00:00Added an answer on May 24, 2026 at 2:01 pm

    This is a question I have answered myself.

    Summary of process

    • use a HTTP proxy sniffer to determine the format of the URL – see below
    • using py-ntlm, connect to TFS server, using a known format of URL to get the “full” report page,
    • parse the report page to get the image url, down load that again through py-ntlm, and store.

    There is no direct URL ie I cannot ask for reportserver/myteam/burndownchart/20110815 (nice and restful) but there is a param style request for the
    wrapper “report” to the image I want. Sadly there is no easy way to find it just browsing in VS2010 extension – I used Charles debugger proxy to see what VS2010 is sending.

    The url you will need to directly visit the report for your team is similar to
    http://tfs.example.com/reportserver?/TfsReports/ExampleCompany/ExampleProject/Sprint+Burndown+Chart&rc:toolbar=false&pReleaseWorkStreamPath=\Release01\&pSprintTeam=\Release02\Sprint01\Team01

    There is some Session based obfuscation going on with the actual image URL, meaning I must call then parse the report page, to find the URL of the image, and then download it. On top of that I needed to get Python to work with Windows Authentication, and generally fiddled around a great deal

    The below process is sound but the code is brittle and I just recommend it as a starting point

    Identify the URL of the report

    Install py-ntlm (http://code.google.com/p/python-ntlm/)

    (a) You need to create a hash of user pass and requested url each time (this is invisible by browser usually)
    (b) THen pass that as a urllib2 handler to urllib2
    (c) process the url as usual through urllib2

    import urllib2
    from ntlm import HTTPNtlmAuthHandler
    #
    passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
    passman.add_password(None, url, user, password) ## (a) 
    auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)  #(b)
    opener = urllib2.build_opener(auth_NTLM)
    
    urllib2.install_opener(opener)  # (c)
    response = urllib2.urlopen(url_moi)
    html = response.read()
    

    SO that gets me the standard report web page, with image in it. I now need to extract that image url, for which I used a regex to get
    all IMG tags and took the second one in the list. Professional and not at all brittle 🙂

    We then rebuild the nltm hash (I have downloaded the HTML report page, now I want the JPG image in it),
    call the URL above and write the output to local disk.

    I hope that helps.

    YMMV

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I wanted to access my existing .db file from sdcard using phoneGap but method
I am developing a blackberry application and i wanted to access the websites from
I wanted to insert multiple records in MS Access file from java Servlet. The
I wanted to know is C# array has a constant access speed? I need
Good day I wanted to have a general URL to access the Desktop of
There are couple of ways to access azure storage services. And I wanted to
I wanted clipboard access for a web app that I built for my own
I wanted to know if we can access the HttpContext class in the App_Code
I wanted to access the thumb cache of vista and 7 to be used
Just wanted to ask to how is User management and Page access based on

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.