Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
gcyr
Frequent Visitor

Specified value has invalid HTTP Header characters

Hi,

 

I trying to connect to a secure API using a token and I received the following error:

 

Expression.Error: Specified value has invalid HTTP Header characters.
Parameter name: name
Details:
<Token>

 

Here is my Query :

let
apiUrl = "<ApiUrl>",
options = [Headers =[#" token "= "<Token>"], Query=[#" SQLQuery "=" <SqlQuery> "]],
result = Web.Contents(apiUrl , options)
in
result

 

The characters in my Token are alphanumeric.

 

How do I resolve this error.

 

Thanks!

1 ACCEPTED SOLUTION

Hi @v-jiascu-msft

 

I found a solution to my problem.

There was a couple of issues:

My code should have been 

let
apiUrl = " <APIURL>",
SqlQuery = " <SQL Query> "
options = [Headers =[Token="<Token>", #"Content-Type" = "application/json"], Content = Text.ToBinary(SqlQuery)],
result = Web.Contents(apiUrl , options)
in
result

The Token should not have been in "". I don't know why HTTP did not recognize this header.

The API only accepts POST method, so my SQLQuery should have been submitted as Content.

I also had to specify the Content-Type.

 

Thanks,

Guillaume

View solution in original post

3 REPLIES 3
v-jiascu-msft
Employee
Employee

Hi @gcyr,

 

The error message said there was something wrong with Parameter Names. I searched this web and found that #" token " isn't a valid header option. Maybe you can try this:

let
apiUrl = "<ApiUrl>",
options = [Headers =[Authorization= "<Token>"], Query=[#" SQLQuery "=" <SqlQuery> "]],
result = Web.Contents(apiUrl , options)
in
result

Or you can try it in this format.

let 
 authKey = "Bearer token",
 url = "https://api.powerbi.com/......",
 GetJson = Web.Contents(url,
     [
         Headers = [#"Authorization"=authKey,
                    #"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8"]
          
     ]
 ),
content = Json.Document(GetJson),
    value = content[value],
    #"Converted to Table" = Table.FromList(value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "name", "addRowsAPIEnabled"}, {"Column1.id", "Column1.name", "Column1.addRowsAPIEnabled"})
in
    #"Expanded Column1" 

 

Best Regards!

Dale

Community Support Team _ Dale
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi @v-jiascu-msft

 

I found a solution to my problem.

There was a couple of issues:

My code should have been 

let
apiUrl = " <APIURL>",
SqlQuery = " <SQL Query> "
options = [Headers =[Token="<Token>", #"Content-Type" = "application/json"], Content = Text.ToBinary(SqlQuery)],
result = Web.Contents(apiUrl , options)
in
result

The Token should not have been in "". I don't know why HTTP did not recognize this header.

The API only accepts POST method, so my SQLQuery should have been submitted as Content.

I also had to specify the Content-Type.

 

Thanks,

Guillaume

Extremely helpful you are a star Smiley Happy

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.