2014-09-30 26 views
12

Tôi đang làm việc với dự án api web asp.net và tôi phải chuyển số điện thoại di động qua bài đăng. Nhưng tôi không thể trả lại dấu cộng.+ (cộng) đăng nhập định tuyến API Web

tuyến đường của tôi:

config.Routes.MapHttpRoute( 
    name: "SmsRoute", 
    routeTemplate: "rest/sms/{country}/{company}/phone/{mobilenumber}", 
    defaults: new { controller = "Sms", action = "PostSms" }); 

điều khiển:

public HttpResponseMessage PostSms(string country, string company, string mobilenumber) 
{ 
    return Request.CreateResponse(HttpStatusCode.Created); 
} 

Khi tôi chạy phương pháp bài này trên cáy:

http://index.html/rest/sms/se/company/phone/46700101010/messages/out 

tôi nhận được câu trả lời này:

enter image description here

Nhưng tôi muốn nó có thể hiển thị cho tôi dấu cộng.

Trả lời

0

Đây là một bất thường phổ biến mà chúng ta phải đối mặt trong khi thêm các tham số trong url của. Ở đây bạn có thể có một chút gì OP của bạn và những gì bạn có thể cần ít chạy sau

Bạn có thể có nhiều lựa chọn như đối với + bạn có thể mã hóa trong file kịch bản java của bạn sử dụng

encodeURIComponent(); 

Và cũng để dễ nếu bạn muốn thêm bất kỳ ký tự đặc biệt trong url của bạn giống như một . sau đó chỉ cần thiết lập thuộc tính relaxedUrlToFileSystemMapping trong web.config của bạn

<system.web> 
<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

hoặc bạn chỉ có thể thêm hoặc loại bỏ một số các nhân vật để chặn/cho phép sử dụng requestPathInvalidCharacters trong web.config

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,:,\,?"/> 
+0

Đây là câu hỏi về WebAPI. – Ofiris

+0

Danh sách các ký tự bị cấm bởi 'relaxUrlToFileSystemMapping' là' <, >,:, ", /, \, |,? Và *'. Giá trị mặc định của 'requestPathInvalidCharacters' là' <, >, *,%, &,:, \, Không ai trong số những người có bất kỳ tác dụng trên dấu cộng, như xa như tôi có thể nói. – RickNZ

14

IIS thời ngăn chặn cộng-dấu hiệu không bị các yếu tố đường dẫn URL.

Để vô hiệu hóa tính năng này, trong web.config:

<system.webServer> 
    <security> 
     <requestFiltering allowDoubleEscaping="true" /> 
    </security> 
</system.webServer> 
Các vấn đề liên quan