Click here to Skip to main content
12,753,418 members (35,972 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


Posted 10 Feb 2014

Contact Web API from InfoPath Designer 2013

, 11 Feb 2014 CPOL
Rate this:
Please Sign up or sign in to vote.
How to contact Web API from InfoPath Designer 2013

I was having some trouble getting values from my home-brewed web API into an InfoPath Designer 2013 form, so I wanted to document the solution for those of you out there perhaps struggling with this as well.

I was calling a simple 'Hello World'-web API that would return a string. My simple API looks like this:

namespace ADlookup.Controllers
/* model */
public class employee
public string employeeId { get; set; }
public string bossId { get; set; }
public class ADLookupController : ApiController
public employee getNearestBossId([FromUri] string id)
return new employee()
employeeId = id,
bossId = id

However, upon calling this API in InfoPath Designer 2013, I got the following error message:

... to indicate the XML structure is invalid.

I didn't get it - when I called the service directly from my browser, valid XML was returned!:

The problem, as it turned out, was of course the one that as opposed to the XML displayed by my browsers, the InfoPath Designer application - correctly - retrieved the data by way of json, the web APIs default MO.

So, in order to serve up only XML, for InfoPath to agree with, we'll strip away the web API's possibility of serving up json altogether. Modify your WebApiConfig to resemble the below, though of course take into consideration the routes you have for your own app:

public static class WebApiConfig
public static void Register(HttpConfiguration config)
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }

// the below must be enabled if this rest service is used with 
// infopath designer 2013 - it only accepts xml data. 
// thus we'll remove the json return type
var formatters = GlobalConfiguration.Configuration.Formatters;

Now, as we re-publish the web API service, we can try once more the URL in InfoPath, which will now allow us to proceed to the next step:

Intriguingly, on a completely different note, the 'get data from http rest service' workflow component in Sharepoint Designer 2013 works off JSON, as opposed to XML! But that's a blog-entry for another rainy day.

Hope this helps someone, anyone.

Thanks for reading.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Denmark Denmark
No Biography provided

You may also be interested in...


Comments and Discussions

-- There are no messages in this forum --
Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170217.1 | Last Updated 11 Feb 2014
Article Copyright 2014 by harleydk
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid