Symptom

If the URL in the web request sent by HTTPClient/RESTClient exceeds 8 KB, the execution fails.


Environment 

PowerBuilder 2021 Build 1506 and later


Cause

Though PowerBuilder supports 64 KB URL in a web request, Web Server has its own limit on the URL length. 


Resolution

You can refer to the following solutions to change the length limit for different types of Web Servers.
 

  • IIS  Server

Modify the following information in the web.config file (locates in the service directory by default). The limit on URI is 2 KB by default.

Add the following settings under the system.webServer/security/ section in the web.config file:

<system.webServer> 

   <security> 

       <requestFiltering> 

           <requestLimits maxAllowedContentLength="930000000"  maxUrl="4096000" maxQueryString="2048000" /> 

       </requestFiltering> 

   <security> 

<system.webServer>

Add the following settings under the system.web/httpRuntime section:

<configuration>

    <system.web>

        <httpRuntime maxRequestLength="4096000" maxQueryStringLength="2048000" /> 

    </system.web>

</configuration>
 
  • Kestrel Server

Add the following code in configwebhost. The limit on URI is 8 KB by default.

webBuilder.ConfigureKestrel(m => m.Limits.MaxRequestLineSize = 80000);
 
  • Apache Server

Modify the httpd.conf file (locates in % Apache Server %\conf\httpd.conf by default) corresponding to the service. Add the following settings (this file doesn’t have these configurations but the limit on URI is 8190 by default):

LimitRequestLine 80000
LimitRequestFieldSize 80000
 
  • Nginx Server

Modify the nginx.conf file (locates in %Nginx Server%\conf\ by default) corresponding to the service. Add the following setting (this file doesn’t have this configuration but the limit on URI is 8 KB by default):

large_client_header_buffers 16 64k

4
1