Reputation: 155
How I can get specific values from the following URL I need to get only 3 values
http://earnprofitclickint.com/UserWorking/Successfull.aspx?lr_paidto=U9925362&lr_amnt=2.00&lr_currency=LRUSD&lr_store=http%3A%2F%2Fwww.earnprofitclickint.com&lr_merchant_ref=&lr_paidby=U3563444&lr_fee_amnt=0.00&lr_transfer=143636187&lr_timestamp=2013-12-05+18%3A31%3A33&ctl00%24contentplaceholder1%24amount=&ctl00%24contentplaceholder1%24id=70&ctl00%24contentplaceholder1%24txtamount=+2&ctl00%24contentplaceholder1%24username=networker&lr_encrypted=04E20ADA982A2AF9C1C64DB3C1601BA596373E22D7B4D21813A51C43DC0198CD&lr_encrypted2=59C8269D431F915360F3B8179EC95181D8C458AB91D72AF3DFC1DC0DFDAC4F64
I want to get 3 values from the above URL return from Liberty Reserve Website and want to insert these three values to database using LINQ TO SQL
I need to get the following values
r_amnt=2.00 ID=70 username=networker
I have written the code in page load to get the above values when the response come and Redirect to my successful page:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();
SaveLocalHistory();
Divmessage.Visible = true;
}
}
public void SaveLocalHistory()
{
MLMDataContext db = new MLMDataContext();
UsersInvestement pd = new UsersInvestement();
pd.Amount = Convert.ToDouble(Amount.Value);
pd.UserId = Convert.ToInt32(ID.Value);
pd.UserName = UserName.Value;
pd.Description = "This amount has been received From LR";
pd.IncomeTypeId = 4;
pd.CreatedDate = DateTime.Now.Date;
db.UsersInvestements.InsertOnSubmit(pd);
db.SubmitChanges();
}
This is a manual change in the URL:
If I change it manually then it works. Any idea?
Upvotes: 3
Views: 5153
Reputation: 5126
Your parameter names are not username
and id
, they are ctl00$contentplaceholder1$username
for username
and ctl00$contentplaceholder1$id
for id
Since %24
when URLDecode gives $
, you need to do the corresponding replacements too.
Try this:
ID.Value = Request.QueryString["ctl00$contentplaceholder1$id"].ToString();
UserName.Value = Request.QueryString["ctl00$contentplaceholder1$username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();
and it should work. Let me know otherwise! :)
Upvotes: 1
Reputation: 82267
I am fairly certain that the query string values are case sensitive, meaning that this code
ID.Value = Request.QueryString["ID"].ToString();
UserName.Value = Request.QueryString["UserName"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();
should probably be in this form
ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();
if you wanted to pull out "r_amnt=2.00 id=70 username=networker"
As an aside, note that you never dispose of your database context. This can be dangerous in that it is possible your connection will not close for a very long time, I would suggest doing this instead:
using( MLMDataContext db = new MLMDataContext() )
{
UsersInvestement pd = new UsersInvestement();
pd.Amount = Convert.ToDouble(Amount.Value);
pd.UserId = Convert.ToInt32(ID.Value);
pd.UserName = UserName.Value;
pd.Description = "This amount has been received From LR";
pd.IncomeTypeId = 4;
pd.CreatedDate = DateTime.Now.Date;
db.UsersInvestements.InsertOnSubmit(pd);
db.SubmitChanges();
}
The using statement ensures that Dispose
is called on the DataContext (which inherits from IDisposable) and will properly close the connection once the actions complete.
Upvotes: 0