Question on calls of vChargeBack rest api using PHP

I try to log in to vCenter using vChargeBack API in PHP. I am having some problems when trying to call the rest service.

My code

 
$xmlfile=simplexml_load_file('login.xml'); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, 1);   
curl_setopt($ch, CURLOPT_POSTFIELDS,$xmlfile);//Passing XML file as POST field 
curl_setopt($ch, CURLOPT_TIMEOUT, 10);   
curl_setopt($ch, CURLOPT_URL,"https://xx.xx.xx.xx/vCenter-CB/api/login"); //Setting URL   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , false );//Since I am requesting https 
curl_setopt($ch , CURLOPT_SSL_VERIFYHOST , false );//Since I am requesting https 
curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Accept: ' . "application/xml" )); 
$response=curl_exec($ch);//Getting response 
$responseInfo=curl_getinfo($ch);//Getting response headers
echo $response;
print_r($responseInfo);






I have to pass the request as XML data in the body of the request. And also I have version as an URL parameter (I tried from version by adding? version = 1.5.0 to the URL). My XML file request is

  <?xml version="1.0" encoding="UTF-8"?>
<Request xmlns="http://www.vmware.com/vcenter/chargeback/1.5.0">
 <Users>
  <User>
  <Type>local</Type>
  <Name>admin</Name>
  <Password>xxxxxxxx</Password>
  </User>
 </Users>
</Request>


When I try to run it, I get the status code 400 (Bad Request). Y at - it something I am doing wrong? Please help me out of this problem.

Kind regards

Srinath

Hello Srinath.

After some research, I was able to make calls from rest of chargeback API using PHP.

I used this RestClient (full credit to the author):

http://www.PhpClasses.org/package/5480-PHP-send-Web-services-requests-to-rest-servers.html

With this class, using the API is quite simple:

include 'library/RestClient/RestClient.class.php';

$chargeBack = RestClient::post(
            $vCenter_chargebackBaseURL."/login?version=1.0.1",
            ''.
            ''.
            ''.
            'local'.
            ''.$vCenter_chargebackUsername .''.
            ''.$vCenter_chargebackPassword.''.
            ''.
            '',
            null,
            null,
            "application/xml"
            ); 

var_dump($chargeBack->getResponse());
var_dump($chargeBack->getResponseCode());
var_dump($chargeBack->getResponseMessage());
var_dump($chargeBack->getResponseContentType());

Please, note that I had to add this line to the RestClient.class.php file inside the constructor method:

curl_setopt ($this-> curl, CURLOPT_SSL_VERIFYPEER, false);

Read this to learn more on this line and alternatives:

http://unitstep.net/blog/2009/05/05/using-curl-in-PHP-to-access-HTTPS-ssltls-protected-sites/

I hope this helps.

Kind regards.

Tags: VMware

Similar Questions

  • Uploading images using the REST API from PHP

    Does anyone at - he had success with the download of the images through the Eloqua Rest API using PHP?

    I have the final point, but I can't understand what kind of information needs to go the variable $data.

    That's what I currently have:

    <? PHP

    ini_set ("display_errors", 1);

    include("..) /.. ("/ eloquaRequest.php");

    $eloquaRequest = new EloquaRequest ('Instancename', 'username', 'password', 'https://secure.eloqua.com/API/REST/1.0');

    $data = new stdClass();

    $data-> image = file_get_contents("./easy.jpg");

    $data-> name = 'this is a file name ";

    $data-> filename = "luke.jpg";

    $data-> contentType = "image/jpeg";

    $response = $eloquaRequest-> message (' assets/image/content', $data);

    var_dump ($Response);

    The error I get is the following, but I think that it is a standard response, if your image does not go through correctly:

    Array (1) {[0] = > object (stdClass) #3 (2) {["type"] = > string(9) "FileError" ["requirement"] = > object (stdClass) #4 (3) {["type"] = > string (15) "SizeRequirement" ["maxSize"] = > int (52428800) ["minSize'] = > int (1)}}}

    Thank you

    Hi Phil,

    I had to find that it all the time, it took me several hours. I hope that it allows you to save a headache.

    Eloqua is very strict in dealing with the content-type header; See the comment here for a little explanation; REST API - download Images

    So what you need to do in PHP, is to build the query string for the image of yourself. You can do as follows (to adapt to your needs, not yet tested);

    <>

    [...]

    $img_path = '. / easy.jpg';

    $img_info = getimagesize ($img_path);

    $img_real = realpath ($img_path);

    $data = "-ELOQUA_BOUNDARY\r\n".

    ' Content-Disposition: form-data; name =-"Filedata\"; filename =------"".baseName ($img_real). » \"\r\n ».

    "Content-Type: '. '" $img_info ['mime']. "" \r\n ".

    "\r\n".

    file_get_contents() ($img_real). "" \r\n ".

    ' - ELOQUA_BOUNDARY - ';

    $headers = array ("Content-Length:".strlen ($data),"Content-Type: multipart/form-data;") Boundary = ELOQUA_BOUNDARY");

    $response = $eloquaRequest-> post (' assets/image/content', $data, $headers);

    ?>

    I have also adapted/reconstructed library Eloqua PHP in order to support the "BOLD" part. You must change the executeRequest function and add something like this to support change the request headers;

    curl_setopt ($this-> ch, CURLOPT_HTTPHEADER, $headers);

  • Submitting a form Via the REST API using the PHP library request

    Can someone send please how to use the library to query PHP found at fredsakr/eloqua-php-request · GitHub to publish form to Eloqua data?

    So far, I have following:

    // include the Eloqua REST client 
    require_once('eloquaRequest.php');  
    
    
    // define the Contact class  
    class ContactForm  
    {
      public $FirstName;  
      public $LastName;  
      public $PhoneNumber;
      public $Institution;  
      public $ContactComment;  
      public $EmailAddress; 
    } 
    
    $client = new EloquaRequest('SITE', 'USERNAME', 'PASSWORD', 'https://secure.eloqua.com/API/REST/1.0');
    
    // instantiate a new instance of the ContactForm class 
    $contact = new ContactForm();  
    $contact->FirstName = 'Sample';  
    $contact->LastName = 'Import'.date("Y-m-d-H-i-s");  
    $contact->PhoneNumber = '111-111-1111';
    $contact->Institution = 'Company Name';
    $contact->ContactComment = 'This is a test of the API';
    $contact->EmailAddress = '[email protected]'; 
    
    // invoke a POST request to create the contact 
    $response = $client->post('/data/form/45', $contact);
    
    


    However, it returns the following:


    array(1) { [0]=> object(stdClass)#318 (4) { ["type"]=> string(21) "ObjectValidationError" ["property"]=> string(11) "fieldValues" ["requirement"]=> object(stdClass)#316 (1) { ["type"]=> string(23) "NoDuplicatesRequirement" } ["value"]=> string(6) "" } }


    Can someone give me a guide step by step on how to do it properly please?

    Hello world

    We have added a 'sample' in the repository of PHP library folder request on Github. The first example shows how to submit form using the API data:

    Please note that you can describe the form fields and other metadata using the following endpoint:

    Hope this helps and please let me know if you need more information.

    Thank you

    Fred

  • How do to identify the documents called "models of library" using the RESTful API?

    How do to identify the documents called "models of library" using the RESTful API? Furthermore, what constitutes a document to be a "model of library"? I see nothing in the libraryDocuments RESTful documentation that describes this type of document, such as presented on the tab 'Manage' my developer account. Please see the screenshot below. There is a model of Document named "[DEMO ONLY] Test model" listed under "Library Templates" and I try to figure out which classifies that document to be included this way and how does produce a similar announcement by using the RESTful API.

    Screen Shot 2014-10-29 at 11.16.48 AM.png

    Thank you!

    Hello

    You can connect to access library models using the REST API, use 'GET /libraryDocuments' allowing to recover documents in library for a user. Models are created in the account of EchoSign, which later are accessible via the REST method mentioned above.

    Jat

  • CPO 3.0 call a REST API

    I try to call a remote REST API that returns a JSON object.

    The call browser API looks like this

    http://IPAM-dev/phpipam/API/?app_id=API&controller=sections&action=read&ID=6

    Returns

    {'success': true, 'data': {'id': '6', 'name': "Telford subnets", 'description': '',' masterSection': '0', 'permissions': "{\"4\":\"1\ ""} strictMode ',' ': '1', 'subnetOrdering': null, 'order': null, "editDate": null, "showVLAN": '0', 'showVRF': '0' "}}

    When I try to use the OPC Web HTTP Request activity it fails with the following error

    Unable to send a content-body with this type of verb.

    I think the problem here is the content type. The default is application/xml; charset = utf - 8 in the activity, I tried to change this text, html and json, but still did not work. I can't let the emty content type in the activity.

    Anyone have any suggestion how to make a REST of CPO call using the activity Web HTTP request

    Try to change GET to POST (in the form of CALL-CPO_REST - RQ.png).  Sends the contents of the body generally requires a POST not a GET.

  • Updated filter shared via the REST API

    Hello I'm trying to update a shared API filter. I'm using PHP and client fredsakr/eloqua-php-application · GitHub.

    So far, I was able to retrieve the filter with the following call:

    <?php
    require('./eloquaRequest.php');
    $eloquaRequest = new EloquaRequest('site', 'User.Name', 'password', 'https://secure.eloqua.com/API/REST/1.0');
    $response = $eloquaRequest->get('assets/contact/filters?search=TheFilterName&depth=complete');
    print_r($response);
    ?>
    

    I can see the filter in the answer below:

    (
        [type] => ContactFilter
        [currentStatus] => Active
        [id] => 100761
        [createdAt] => 1380137168
        [createdBy] => 48
        [depth] => complete
        [folderId] => 1036
        [name] => TheFilterName
        [updatedAt] => 1383589417
        [updatedBy] => 48
        [count] => 254382
        [criteria] => Array
            (
                [0] => stdClass Object
                    (
                        [type] => ContactFieldCriterion
                        [id] => 1912
                        [condition] => stdClass Object
                            (
                                [type] => TextSetCondition
                                [operator] => in
                                [optionListId] => 193
                            )
    
                        [fieldId] => 100012
                    )
    
            )
    
        [lastCalculatedAt] => 1380137190
        [scope] => global
      statement] => 1912
    

    What I want to do is update that corresponds to the values of 'Compare the Contact fields' in the GUI Eloqua under Contact = > Shared Library = > Contact filters.

    Looks like he has the "[type] = ContactFieldCriterion" under the [criteria] field in the response.

    I'd get how this value in a call to REST, and also how I would update it.

    Please let me know if you need more details on this issue. Please help and thank you.

    After some research I found what I wanted to do has been updated the list of options for this filter. See http://topliners.eloqua.com/docs/DOC-3588 for documentation on the base object. But I had difficulty in updating an OptionList with the Rest API using PUT. If you can help, please visit http://topliners.eloqua.com/message/36739#36739 . Thank you.

  • REST API v5 assignment of roles of creation?

    I use the 'Try It' feature for creating an agreements on the documentation of the REST API (REST API - documents electronic signature software - Adobe Document Cloud)

    But I get the error message: {"message': 'valid recipient role is missing.' " "} , " code ": { 'MISSING_REQUIRED_PARAM' }

    and I do not understand what the role of beneficiary is supposed to be like.

    The model defines as:

    {RecipientRole}

    SIGNATORY (enum): signatory.

    DELEGATE_TO_SIGNER (enum): delegate to the signatory,

    DELEGATE_TO_APPROVER (enum): delegate to the approver.

    APPROVER (enum):approver

    }

    and these defaults model schema:

    'recipientSetRole': {}

    'SIGNATORY': 'enum ',.

    'DELEGATE_TO_SIGNER': 'enum ',.

    'DELEGATE_TO_APPROVER': 'enum ',.

    'APPROVER': 'enum '.

    }

    What are the values that awaits the recipient role? I can't understand by trial and error...

    Hello Iris,.

    Can you let me know the name of the API you call tried in REST API? In addition, by default, the value should be defined as:

    "recipientSetRole": "SIGNATORY",.

    If you want to just use a single value. I would still check and confirm and would need the name of the function used.

    Kind regards

    -Usman

  • How to get assets via the REST API (Webcenter Sites)

    Hello world

    I need to get assets via the REST API using Javascript, but I don't know how to open a session. Can someone explain to me how do?

    I would really appreciate it.

    I also followed this guide Oracle Webcenter REST API permission | Stories of official codification but does not work.

    Best regards!

    Hello rvillamarin,

    Take a look at https://docs.oracle.com/cd/E29542_01/doc.1111/e29634/wemsecurity.htm#WBCSD306. With this, you should be able to get a ticket, to pass at the request of the REST.

    Kind regards

    Stephan.

  • Question: Is it possible to add a contact to a shared list using REST API?

    Maybe it's just me being blind... Is it possible to add a contact to a shared list using the REST API?

    Thank you!

    ADI

    OTHER offers:

    PUT API/REST/1.0/assets/contact/list/{id}

  • Calling REST API security token error simple GET method

    Please help me get past this error. I have yet to get a successful REST API request of Eloqua. API is enabled for our sandbox that I managed by instantiating different SOAP request/response.

    This is my test RequestURI

    https://secure.Eloqua.com/API/rest/2.0/data/contact/3

    With the method 'GET' headers appropriate and what I have collected of their API guides, including the very useful

    Eloqua REST API - authentication

    Eloqua REST API - URL parameters

    Eloqua REST API - HTTP request headers

    RequestURI works when typed manually into a authenticated (connected to the Eloqua Sandbox session) tab of the FireFox browser.

    When I try the request in my tools (middleware Tibco integration, acting as a client HTTP request), I always get the answer:

    A security token that is associated with your session became invalid.

    I saw this topic, but this was not useful in my case.

    http://topliners.Eloqua.com/message/20371#20371

    The behavior in my case is pretty consistent, and seems not to care if I even spoil RequestURI making it invalid. The same error persists.

    Help, please! Thank you

    Heath

    A more complete answer follows:

    < RequestActivityOutput >

    < header > HTTP/1.1 200 OK

    Content-Type: text/html; charset = utf-8

    Content-Length: 2355

    Date: Friday, April 19, 2013 19:43:19 GMT

    cache-control: private

    connection: close

    P3P: CP = "IDC DSP COR DEVa TAIa OUR PHY ONL UNI COM NAV CNT STA BUS."

    < / header >

    < statusLine >

    < httpVersion > HTTP/1.1 < / httpVersion >

    < statusCode 200 > < / statusCode >

    < reasonPhrase > OK < / reasonPhrase >

    < / statusLine >

    ....

    A security token that is associated with your session became invalid.

    This can happen if you open multiple instances of Eloqua, in

    different browser Windows or tabs, then the diary of one of

    These instances.  Please either close this window or tab, or

    & lt; a href = "" / FormsLogin.aspx "target ="_top"> click here to connect to new & lt;" /a >. & lt; br >

    Heath,

    I'm not able to simply navigate to this URL in my browser either, even though I am connected to my sandbox (which has access to the API). I don't know how you manage to get there in Firefox.

    That being said, I can hit this page of the REST API very well when I base64 encode my credentials HTTP as described here:

    Eloqua REST API - authentication

    May be useful to take a look at the auth string you use when calling from rest.

    Jim

  • How can I use the REST API to get general information of the user (Signature fields)?

    I'm trying to use the API to get the signature of all the users of the system fields. I can see this information in the web browser if I go to settings-> user management-> and selecting the user.

    I would like to know if there is a way to get the information General information (Signature fields) using the API.

    Thank you!

    Hi Sai,

    The REST API exposes the user records (see the following document); However, signature fields are not included. We need to work on this addition to the API (in a later version), but the option is currently not available.

    Please let me know if you have any questions or would like more information.

    Thank you

    Fred

  • Using c# to access the REST API - 404 not found

    Hi all!

    Since there is currently no available c# example to access the REST API, I'm going at this from scratch using the Nuget - Microsoft.AspNet.WebApi.Client package.

    I was able to successfully implement a framework for code that is able to make a call to the base_uris method and successfully receive a response.

    I'm doing a transientDocuments call, but I still get a 404 not found error.  I'm hoping somewhere here may be able to enlighten.  I tried to use the current examples of Java to call REST API to get help on how to go about things.

    I create an instance of the AdobeDCREST class, and pass the BaseUrl (https://api.echosign.com/api/rest/v5/) and my key to integration.  When I make a call to the PostTransientDocuments method I pass into the path of the pdf file that I am trying to download.  PostTransientDocuments then deals with the creation of an object the HttpContent (StreamContent) of the file, and then adding the headers, ContentType and ContentDisposition.  The call to GetClient() will determine whether base_uris should be called still or not (I make the call to base_uris and storage of the api_access_point in a variable static for all other calls, as well as the java examples) and returns an object of the HttpClient with the access in the header already token.  The call to base_uris works and returns a https://api.na1.echosign.com/ api_access_point

    I then add/api/rest/v5 to the url access_point to call transientDocuments. Failure occurs during the call to PostAsync in transientDocuments with a 404 not found error.

    Here's the code I'm using to test things so far.  Any help would be greatly appreciated.  I've been spinning my wheels on that for too long already.

    using System;

    using System.Collections.Generic;

    using System.IO;

    using System.Linq;

    using System.Net.Http;

    using System.Net.Http.Headers;

    using System.Text;

    using System.Threading.Tasks;

    namespace Ivezt.Documents {}

    public class AdobeDCREST {}

    < Summary >

    A static variable that is defined by an initial call to GetBaseURIs() and used for all API calls later.

    < / Summary >

    Private Shared ReadOnly Property SERVICES_BASE_URL as string = string. Empty;

    < Summary >

    The end point of API to use.  This aspect will have to be changed if Adobe is moving to a new version of the API and we update this

    the code to use this new version.

    < / Summary >

    Private Shared ReadOnly Property API_URL as string = "api/rest/v5 /";

    < Summary >

    This BaseUrl is passed to the constructor and used to make a call to GetBaseURIs().

    < / Summary >

    private string m_strBaseUrl = string. Empty;

    < Summary >

    The IntegrationKey is passed to the constructor and must be added to the header of each API request.

    < / Summary >

    private string m_strIntegrationKey = string. Empty;

    public AdobeDCREST (string strBaseUrl, string strIntegrationKey) {}

    m_strBaseUrl = strBaseUrl;

    m_strIntegrationKey = strIntegrationKey;

    }

    private HttpClient GetDefaultClient() {}

    HttpClient client = new HttpClient();

    Add an Accept header for JSON format.

    customer. () DefaultRequestHeaders.Accept.Add

    (new MediaTypeWithQualityHeaderValue("application/json"));

    Add the access token

    customer. DefaultRequestHeaders.Add ("Access token", m_strIntegrationKey);

    customer feedback;

    }

    private HttpClient GetClient() {}

    If we have not yet the SERVICES_BASE_URL, then we must do a GetBaseURIs call

    If (SERVICES_BASE_URL. Length == 0) {}

    HttpClient baseClient = GetDefaultClient();

    Use the BaseUrl passed to the constructor

    baseClient.BaseAddress = new Uri (m_strBaseUrl);

    URI BaseURIs_Response = GetBaseURIs (baseClient);

    SERVICES_BASE_URL = string. Format ("{0} {1}", uris.api_access_point, API_URL);

    baseClient.Dispose ();

    }

    If (SERVICES_BASE_URL. Length == 0)

    throw new Exception ("failed to retrieve Adobe Document cloud Base URI");

    HttpClient client = GetDefaultClient();

    customer. BaseAddress = new Uri (SERVICES_BASE_URL).

    customer feedback;

    }

    public BaseURIs_Response GetBaseURIs(HttpClient client) {}

    Call base_uris

    HttpResponseMessage response = client. GetAsync ("base_uris"). Result;  Call blocking!

    If (answer. IsSuccessStatusCode) {}

    Analyze the response body. Blocking!

    answer back (BaseURIs_Response). Content.ReadAsAsync (typeof (BaseURIs_Response)). Result;

    }

    else {}

    throw new Exception (string. Format ("{0} ({1})", (int) response. ") StatusCode, response. ReasonPhrase));

    }

    }

    public TransientDocument_Response PostTransientDocuments (string strFilePath) {}

    Call transientDocuments

    Content the HttpContent = new StreamContent (new FileStream (strFilePath, FileMode.Open, FileAccess.Read));

    content. Headers.ContentType = new MediaTypeHeaderValue("application/pdf");

    content. Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") {}

    Name = "file."

    FileName = 'Template.pdf.

    };

    HttpClient client = GetClient();

    HttpResponseMessage response = client. PostAsync ("transientDocuments", content). Result;  Call blocking!

    If (answer. IsSuccessStatusCode) {}

    Analyze the response body. Blocking!

    answer back (TransientDocument_Response). Content.ReadAsAsync (typeof (TransientDocument_Respons e)). Result;

    }

    else {}

    throw new Exception (string. Format ("{0} ({1})", (int) response. ") StatusCode, response. ReasonPhrase));

    }

    }

    }

    public class BaseURIs_Response {}

    public string web_access_point {get; set ;}}

    public string api_access_point {get; set ;}}

    }

    public class TransientDocument_Response {}

    public string transientDocumentId {get; set ;}}

    }

    }

    I think I found my problem.  I was not a multi-part post form data.  Once I changed this, everything worked as expected.  Here is an updated version of the PostTransientDocuments() method that works:

    public TransientDocument_Response PostTransientDocuments (string strFilePath) {}

    Call transientDocuments

    using (var = {GetClient() customer)}

    using (var content = new MultipartFormDataContent()) {}

    var multiplesContent = new StreamContent (new FileStream (strFilePath, FileMode.Open, FileAccess.Read));

    fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");

    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") {}

    Name = "file."

    FileName = 'Template.pdf.

    };

    content. Add (FileContent);

    HttpResponseMessage response = client. PostAsync ("transientDocuments", content). Result;  Call blocking!

    If (answer. IsSuccessStatusCode) {}

    Analyze the response body. Blocking!

    answer back (TransientDocument_Response). Content.ReadAsAsync (typeof (TransientDocument_Respons e)). Result;

    }

    else {}

    throw new Exception (string. Format ("{0} ({1})", (int) response. ") StatusCode, response. ReasonPhrase));

    }

    }

    }

    }

  • Workflow of vCO of query using the REST API in PowerShell

    Hello

    I am interrogating a workflow vCO by name using the REST API of PowerShell based on this article:

    http://www.vcoteam.info/articles/learn-VCO/268-how-to-use-the-rest-API-to-start-a-workflow.html

    $username = "XXXXXX".

    $upassword = "XXXXXX".

    $auth = $username + ':' + $upassword

    $Encoded = [System.Text.Encoding]: UTF8. GetBytes ($auth)

    $EncodedPassword = [System.Convert]: ToBase64String ($Encoded)

    $headers = @{' authorization '=' basic $($EncodedPassword) ' ;}}

    $body = "<-xmlns = execution context" ". ' http://www.VMware.com/VCO ' > < / execution context > '

    #query for workflow named "donothing".

    Invoke-RestMethod-uri https://XXXX:8281/api/flow /? conditions = name = donothing -Headers $headers - body $body - ContentType "application/xml" - Get method

    Invoke RestMethod: failed to send a content-body with this type of verb.

    On line: 1 char: 1

    + Call-RestMethod-uri https://XXXX:8281/api/flow /? conditions = name = donoth ...

    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo: NotSpecified: (:)) [invoking-RestMethod], ProtocolViolationException)

    + FullyQualifiedErrorId: System.Net.ProtocolViolationException, Microsoft.PowerShell.Commands.InvokeRestMethodCommand

    The request succeeds by using the customer REMAINS on Firefox, but I can't make it work on PowerShell. (NOTE: PowerShell workflow execution works very well)

    Any help is appreciated.

    Thank you

    Juan.

    OK, I managed to do work by removing

    [System.Net.ServicePointManager]: ServerCertificateValidationCallback = {$true}

    And add this at the beginning of the script

    "Add-type @ '.

    using System.Net;

    using System.Security.Cryptography.X509Certificates;

    public class TrustAllCertsPolicy: {ICertificatePolicy

    public bool CheckValidationResult)

    ServicePoint srvPoint, X509Certificate certificate,

    WebRequest request, int certificateProblem) {}

    Returns true;

    }

    }

    "@

    [System.Net.ServicePointManager]: CertificatePolicy = New-Object TrustAllCertsPolicy

    Now I can use the GET method:

    $ret = Invoke-WebRequest - uri $URL - Headers $headers - ContentType "application/xml" - Get method

    I spent to Invoke-WebRequest so I can get the return of application Web.

    Juan.

  • Cannot add firewall rules using the REST API vShield App

    Hi all

    I get the following error

    "< errors > < error > < code > 100039 < / code > < description > Unmatched rules found in the configuration." "< / description > < / error > < / errors >.

    When you use the App API vSheild:

    POST https:// /API/2.0/app/firewall/dvportgroup-55/config < vsm-ip >

    Paylod XML:

    <? XML version = "1.0" encoding = "UTF-8" standalone = "yes"? >
    < VshieldAppConfiguration >
    < firewallConfiguration = "dvportgroup-55" the contextId >
    < layer3FirewallRule disabled = "false" priority = "none" id = "1021" >
    < action > allow < / action >
    < connected > false < / connected >
    < source >
    < address >
    < ipAddress > 172.30.68.212 < / ipAddress >
    < / address >
    < > 222 portInfo < / portInfo >
    < / source >
    < destination >
    < address >
    < ipAddress > 172.30.68.166 < / ipAddress >
    < / address >
    < application >
    < > 333 portInfo < / portInfo >
    < Protocol > 6 < / Protocol >
    < / application >
    < / destination >
    < / layer3FirewallRule >
    < / firewallConfiguration >
    < / VshieldAppConfiguration >

    Is anyone has seen this before or any idea why this might be happening?

    In addition, create a wall of fire to provide the variable "id"... How do I know which id to use to create a new firewall rule. I'm using id = "1021" I see one last created after quesrying API... but when you call it through automation, what will the process to define an id invalid?

    Thank you

    xar

    ID must be present, for the new rule Id must be '0' while that for others it should kept as what. The reason for this error which I believe is the same. Replacement of 1021 with 0 should solve this problem. http://blogs.VMware.com/security/2011/11/using-the-VShield-API.html should also be useful to start with vShield firewall App REST API.

    -Kone

  • Make a call to REST API through c# to 'change a fixed cost value.

    HI -.

    I am trying to make a call to REST API through c# for "change to a fixed cost value.

    I did successfully the following tasks via c# with the call of the API REMAINS the chargeback manager 2.0

    -Connection to the chargeback manager 2.0

    -Add a custom Chargeback hierarchy

    -Add vCenter Server entity in the hierarchy of Chargeback that was created by the REST API

    -Add the fixed cost model.

    But when I tried to use the REST API to 'change a value of fixed cost' based on the version of the document programming API 2.0.

    He is not successful... Here are the error messages and the code I had.

    Code:

    Public Shared ReadOnly Property ModifiyFixedCost (CookieContainer cookieContainer) as string
    {
    HttpWebRequest request;
    Stream streamReq;
    = request (WebRequest.Create ("https://10.63.11.34/vCenter-CB/api/fixedCost/707/values"); )
    = //request (WebRequest.Create ("https://10.63.11.34/vCenter-CB/api/hierarchy/696/entity/697/costModel/701/fixedCosts/values"); )
    request. CookieContainer = cookieContainer;
    request. Method = "PUT";
    request. KeepAlive = true;
    request. Timeout = 600000;
    request. ContentType = "application/x-www-formulaires-urlencoded; application/x-www-form-urlencoded
    streamReq = request. GetRequestStream();

    Reading XML file.
    String strXML;
    String strCurrentPath = System.IO.Directory.GetCurrentDirectory;
    String strPath = "";
    strPath = strCurrentPath + "\\ModifiyFixedCostXML.txt";

    using (StreamReader sr = new StreamReader (strPath))
    {
    strXML = sr. ReadToEnd();
    }

    String strResp;
    Byte [] byteArray = Encoding.UTF8.GetBytes (strXML);
    streamReq.Write (byteArray, 0, byteArray.Length);
    streamReq.Close ();

    to using (WebResponse response = request. GetResponse())
    {
    Stream streamResp = response. GetResponseStream();
    StreamReader streamReaderResp = new StreamReader (streamResp);
    strResp = streamReaderResp.ReadToEnd ();
    }
    Return strResp;
    }

    XML file:

    <? XML version = "1.0" encoding = "UTF-8"? >
    < application >
    < FixedCosts >
    < FixedCost id = "1" >
    values <>
    < value >
    < cost > 3.14 < / cost >
    < span id = "1" / >
    < / value >
    < / value >
    < / FixedCost >
    < / FixedCosts >
    < / request >

    Error messages;

    <? XML version = "1.0" encoding = "UTF-8"? >

    " < response xmlns =" http://www.VMware.com/vCenter/chargeback/2.0 "" xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " status = "Failure" > ""

    < majorErrorCode error = '500' minorErrorCode = '0' message = "No such method defined or an API call lack of required arguments. / >

    < / answer >

    Please explain what is the problem here... Is the chargeback REST API c# 2.0 support?

    Thank you

    Yale

    Yale,

    I see the following changes are required in the application:

    1. URL is missing, the startTime and endTime, if the end time is not required to send it as -1. For example: http://localhost: 8080/vCenter-CB/api/fixedCost/553/values? startTime = endTime =-1 & 1340130600000
    2. In XML, fixed cost id must be the same as that mentioned in the URL. XML tag is

    Thank you

    Diomande

Maybe you are looking for