ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Core Namespace / EsriHttpResponseMessage Class
Members Example Version

EsriHttpResponseMessage Class
Provides a class representing HTTP response message.
Object Model
EsriHttpResponseMessage ClassEsriHttpResponseMessage Class
Syntax
public class EsriHttpResponseMessage 
Remarks
HTTP response messages are received by the client from the server after an HTTP request messages is sent.
Example
EsriHttpClient: Get the Current signed on User
//Reference Newtonsoft - Json.Net
//Reference System.Net.Http
UriBuilder selfURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri)
{
  Path = "sharing/rest/portals/self",
  Query = "f=json"
};
EsriHttpResponseMessage response = new EsriHttpClient().Get(selfURL.Uri.ToString());

dynamic portalSelf = JObject.Parse(await response.Content.ReadAsStringAsync());
// if the response doesn't contain the user information then it is essentially
// an anonymous request against the portal
if (portalSelf.user == null)
  return;
string userName = portalSelf.user.username;
Get the Groups for the Current Signed on User
//Assume that you have executed the "Get the Current signed on User" snippet and have 'userName'
UriBuilder groupsURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri)
{
  Path = String.Format("sharing/rest/community/users/{0}", userName),
  Query = "f=json"
};
var groupResponse = new EsriHttpClient().Get(groupsURL.Uri.ToString());
dynamic portalGroups = JObject.Parse(await groupResponse.Content.ReadAsStringAsync());

string groups = portalGroups.groups.ToString();
EsriHttpClient: Query for esri content on the active Portal
//http://www.arcgis.com/sharing/search?q=owner:esri&f=json

UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri)
{
  Path = "sharing/rest/search",
  Query = "q=owner:esri&f=json"
};
EsriHttpClient httpClient = new EsriHttpClient();
var searchResponse = httpClient.Get(searchURL.Uri.ToString());
dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync());

long numberOfTotalItems = resultItems.total.Value;
long currentCount = 0;

List<dynamic> resultItemList = new List<dynamic>();
// store the first results in the list
resultItemList.AddRange(resultItems.results);
currentCount = currentCount + resultItems.num.Value;
//Up to 50
while (currentCount < numberOfTotalItems && currentCount <= 50)
{
  searchURL.Query = String.Format("q=owner:esri&start={0}&f=json", resultItems.nextStart.Value);
  searchResponse = httpClient.Get(searchURL.Uri.ToString());
  resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync());
  resultItemList.AddRange(resultItems.results);
  currentCount = currentCount + resultItems.num.Value;
}
EsriHttpClient: Get a Web Map for the Current User and Add it to Pro
UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri)
{
  Path = "sharing/rest/portals/self",
  Query = "f=json"
};
EsriHttpClient httpClient = new EsriHttpClient();
EsriHttpResponseMessage response = httpClient.Get(searchURL.Uri.ToString());

dynamic portalSelf = JObject.Parse(await response.Content.ReadAsStringAsync());
// if the response doesn't contain the user information then it is essentially
// an anonymous request against the portal
if (portalSelf.user == null)
  return;
string userName = portalSelf.user.username;

searchURL.Path = "sharing/rest/search";
string webMaps = "(type:\"Web Map\" OR type:\"Explorer Map\" OR type:\"Web Mapping Application\" OR type:\"Online Map\")";
searchURL.Query = string.Format("q=owner:{0} {1}&f=json", userName, webMaps);

var searchResponse = httpClient.Get(searchURL.Uri.ToString());
dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync());

long numberOfTotalItems = resultItems.total.Value;
if (numberOfTotalItems == 0)
  return;

List<dynamic> resultItemList = new List<dynamic>();
resultItemList.AddRange(resultItems.results);
//get the first result
dynamic item = resultItemList[0];

string itemID = item.id;
Item currentItem = ItemFactory.Instance.Create(itemID, ItemFactory.ItemType.PortalItem);

if (MapFactory.Instance.CanCreateMapFrom(currentItem))
{
  Map newMap = MapFactory.Instance.CreateMapFromItem(currentItem);
  await ProApp.Panes.CreateMapPaneAsync(newMap);
}
EsriHttpClient: Get a Service Layer and Add it to Pro
UriBuilder searchURL = new UriBuilder(ArcGISPortalManager.Current.GetActivePortal().PortalUri)
{
  Path = "sharing/rest/search"
};
string layers = "(type:\"Map Service\" OR type:\"Image Service\" OR type:\"Feature Service\" OR type:\"WMS\" OR type:\"KML\")";
//any public layer content
searchURL.Query = string.Format("q={0}&f=json", layers);

EsriHttpClient httpClient = new EsriHttpClient();

var searchResponse = httpClient.Get(searchURL.Uri.ToString());
dynamic resultItems = JObject.Parse(await searchResponse.Content.ReadAsStringAsync());

long numberOfTotalItems = resultItems.total.Value;
if (numberOfTotalItems == 0)
  return;

List<dynamic> resultItemList = new List<dynamic>();
resultItemList.AddRange(resultItems.results);
//get the first result
dynamic item = resultItemList[0];

string itemID = item.id;
Item currentItem = ItemFactory.Instance.Create(itemID, ItemFactory.ItemType.PortalItem);

await QueuedTask.Run(() =>
{
      //Create a LayerCreationParam
      var layerParam = new LayerCreationParams(currentItem);
      // if we have an item that can be turned into a layer
      // add it to the map
      if (LayerFactory.Instance.CanCreateLayerFrom(currentItem))
    LayerFactory.Instance.CreateLayer<FeatureLayer>(layerParam, MapView.Active.Map);
});
Inheritance Hierarchy

System.Object
   ArcGIS.Desktop.Core.EsriHttpResponseMessage

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also