如何使用Jersey @PathParameter从URL获取片段(值哈希'#')?
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
for (iy = 0; iy < checkedListBox1.Items.Count; iy++)
{
var item = checkedListBox1.Items[iy];
string ctlName = item.ToString();
Control txt = null;
if (checkedListBox1.GetItemChecked(iy))
{
txt = FindControl(ctlName);
if (txt != null)
{
continue;
}
txt = new TextBox();
txt.Name = ctlName;
txt.Text = ctlName;
txt.Location = new Point(150, 32 + (iy * 28));
txt.Visible = true;
this.Controls.Add(txt);
}
else if (checkedListBox1.GetItemCheckState(iy) == CheckState.Unchecked)
{
txt = FindControl(ctlName);
if (txt==null)
{
continue;
}
this.Controls.Remove(txt);
txt.Dispose();
}
}
}
Control FindControl(String ctlName)
{
for (int i = 0; i < this.Controls.Count; i++)
{
if (this.Controls[i].Name==ctlName)
{
return this.Controls[i];
}
}
return null;
}
我的网址为http://localhost:8080/Sample/webapi/Step2/Password@12#
但密码将显示&#34;密码@ 12&#34;只缺少哈希(#)..
答案 0 :(得分:1)
尝试对网址进行编码/解码。
对于javascript:
encodeURI(uri)
然后使用URLDecoder
在java中解码它答案 1 :(得分:1)
由于您的实际值似乎有哈希值,并且它不是片段,因此需要在发送之前对其进行编码。 URL编码是正确的方法(就像其他答案所示)。
另请注意,在网址中发送密码还存在其他问题,例如它将存储在不同的访问日志中,它将成为浏览器网址历史记录等的一部分。通常您不应该以这种方式发送密码。喜欢POST身体。