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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors