App Connect

 View Only
Expand all | Collapse all

URL with colon in RequestLine.RequestURI

  • 1.  URL with colon in RequestLine.RequestURI

    IBM Champion
    Posted Fri November 18, 2022 06:18 AM
    Hi All

    I'm trying to integrate with sharepoint to upload a file using the graph api. Uploading a file to SP with the graph api uses a special url with colons: 
    PUT https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/items/{parent-id}:/{filename}:/content

    This works fine as long as I build the full URL in the OutputLocalEnvironment.Destination.HTTP.RequestURL field. If I start using OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURI then all of a sudden I get "HTTP/1.1 404 Not Found".

    It seems that the RequestURI field is handled weirdly by the http request node (with the colons). Copying the URL and URI and running it via postman also works.


    ------------------------------
    Regards
    Matthias Blomme
    ------------------------------


  • 2.  RE: URL with colon in RequestLine.RequestURI

    Posted Mon November 21, 2022 12:26 PM
    @Matthias Blomme I'm not able to reproduce this with HTTPRequest nodes on 12.0.6, but it's possible I'm not using an exact replica of your scenario.

    My setup was ACE 12.0.6 on Linux pointing at the "netcat" utility to show me what was being sent, and a flow that ​did either

    SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://localhost:12345/v1.0/sites/123/drives/456/items/789:/FILENAME:/content';

    or 

    SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://localhost:12345/this/should/not/be/used';
    SET OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURI = '/v1.0/sites/123/drives/456/items/789:/FILENAME:/content';

    before an HTTPRequest node set to PUT, and the output was the same in both cases:

    tdolby@IBM-PF3K066L:/$ nc -l -p 12345
    PUT /v1.0/sites/123/drives/456/items/789:/FILENAME:/content HTTP/1.1
    Content-Length: 14
    Content-Type: application/json;charset=utf-8
    Host: localhost:12345
    SOAPAction: ""
    Connection: Keep-Alive

    {"top":"test"}

    Would it be possible for you to capture the HTTP data on the wire in both success and failure cases? That might help debug the issue.

    ------------------------------
    Trevor Dolby
    IBM Expert Labs
    ------------------------------



  • 3.  RE: URL with colon in RequestLine.RequestURI

    IBM Champion
    Posted Thu November 24, 2022 08:31 AM
    Edited by Matthias Blomme Fri November 25, 2022 01:20 AM
    Hi Trevor,

    I'll give it a try.