有时候我们调用第三方接口,返回的并不是完整的链接带参数,而我们只需要获取指定的一些参数

例如:code=200&msg=success&timestamp=1657539&nonce_str=T8Zhan&data=%7B%22pre_tre_no%22%3A%22OID2022071117311BA%22%2C%22open_ord_id%22%3A%22EP6155220700100032%22%2C%22open_ord_time%22%3A1657531889%2C%22open_uni_id%22%3A6155%2C%22open_app_id%22%3A%221118%22%2C%22open_acc_id%22%3A6155220100100002%2C%22open_pay_type%22%3A%22pay_yy%22%2Cb_pay_type%22%3A%22%22%2Cpen_status%22%3A9%2C%22open_type%22%3A1%2C%22open_user_percode%22%3A%22110180%22%n_fee_total%22%3A%220.02%22%2C%22ext_trade_no%22%312%2C%22ext_trade_time%22%3A1657531888%2C%22ext_mer_id%22%3A%221037%22%2C%22ext_wallet%22%3A1%2C%22pre_attach%22%3A%22%22%2C%22pre_ode%22%3A%22%22%2C%22pre_order_tus%22%3A3%7D&method=nify&real_app_id=1118&sign=8032BEBE4916DAA256C419B

除了傻瓜式解码然后再写一堆方法去截取参数之外,当然还有更好的写法!

var str = "code=200&msg=success&timestamp=1657531889&nonce_str=T88cZhan&data=%7B%22pre_trade_no%22%3A%22OID20220711173116DDBA%22%2C%22open_ord_id%22%3A%22EP61552232%22%2C%22open_ord_time%22%3A1657531889%2C%22open_uni_id%22%3A6155%22open_app_id%22%3A%28%22%2C%22open_acc_id%22%3A615522012%2C%22open_pay_type%22%3A%22pay_yay%22%2C%22open_sub_pay_type%22%3A%22C%22open_status%22C%22open_type%22%22open_user_percode%22%3%22%2C%22open_fee_total%22%3A%220.02%22%2C%22ext_trade_no%22%3A2%2C%22ext_trade_time%22%3A1688%2C%22ext_mer_id%22%3A%2210C%22ext_wallet_num%22%3A1%ttach%22%3A%22%22%2C%22pre_pay_code%22%3A%status%22%3A3%7D&method=noty&real_app_id=18&sign=8056C419B";
//var conStr = HttpUtility.UrlDecode(str);
var collection = HttpUtility.ParseQueryString(str);
var psrsms = JsonConvert.DeserializeObject<data>(collection["data"]);
//var collection2 = HttpUtility.ParseQueryString(conStr);
Console.WriteLine(psrsms.pre_trade_no);
//Console.WriteLine(collection2["data"]);
Console.ReadLine(); public class data
{
public string pre_trade_no { get; set; } //第三方商户订单号
public string pre_attach { get; set; } //原值返回字符串
public string open_status { get; set; } //订单支付状态,"9"代表已成功
public string open_ord_id { get; set; } //开放平台订单ID
public string open_pay_type { get; set; } //订单支付渠道
}

  

.Net 获取URL中指定参数值的更多相关文章

  1. 使用JS,获取URL中指定参数的值

    /** * 获取URL中指定参数的值 * * @param name 参数名称 * @returns */ function getQueryString(name) { var reg = new ...

  2. js中获取URL中指定的查询字符串

    js中获取URL中指定的搜索字符串,主要利用location对象实现,废话少说,上代码. function getSearchString(key) { // 获取URL中?之后的字符 var str ...

  3. JS根据key值获取URL中的参数值,以及把URL的参数转换成json对象

    //把url的参数部分转化成json对象 parseQueryString: function (url) { var reg_url = /^[^\?]+\?([\w\W]+)$/, reg_par ...

  4. 使用JavaScript获取url中的参数值

    今天需要用到从url中获取参数,在网上找了几个JavaScript方法,mark下来.   一些可以使用的去获取url中指定的部分:如http://www.mystuff.com.cn/aboutus ...

  5. 获取URL中的参数值

    //获取url中ID的值function getParamByName(name, url) { var match = RegExp('[?&]' + name + '=([^&]* ...

  6. 在JQuery中获取URL中的参数值

    添加一个js文件,代码如下 // * jQuery url get parameters function [获取URL的GET参数值] // *character_set UTF-8 // * au ...

  7. js获取URL中指定的值

    function getSearchString(key) { // 获取URL中?之后的字符 var str = location.search; str = str.substring(1,str ...

  8. 获取url中指定的参数

    function GetRequest(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(& ...

  9. js获取url中的参数值

    在博客园看家一片不错的文章:http://www.cnblogs.com/EnderH/p/5398409.html 在这里记下对自己比较有用的三种: 1.正则 function GetQuerySt ...

  10. javascript中正则实现读取当前url中指定参数值方法。

    getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

随机推荐

  1. 设计链表-LeetCode707 基础题

    LeetCode链接:https://leetcode.cn/problems/design-linked-list/ 题目:设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属 ...

  2. 网易云VIP音乐NCM文件转MP3,C语言版本。

    前言 网易云的Vip音乐下载下来,格式不是mp3/flac这种通用的音乐格式,而是经过加密的ncm文件.只有用网易云的音乐App才能够打开.于是想到可不可以把.ncm文件转换成mp3或者flac文件, ...

  3. 重学c#系列—— 反射深入一点点[三十三]

    前言 在上一章中介绍了什么是反射: https://www.cnblogs.com/aoximin/p/16440966.html 正文 上一节讲述反射的基本原理和为什么要用反射,还用反射的优缺点这些 ...

  4. C# 正则表达式常用的符号和模式解析

    〇.正则表达式的基本语法符号 若只简单匹配固定字符串,则无需任何修饰符,例如:需要匹配字符串 77,则可直接写:new Regex("77"). 下边例举一下常用的符号:(知道下面 ...

  5. [seaborn] seaborn学习笔记0-seaborn学习笔记章节

    seaborn学习笔记章节 seaborn是一个基于matplotlib的Python数据可视化库.seaborn是matplotlib的高级封装,可以绘制有吸引力且信息丰富的统计图形.相对于matp ...

  6. 数论专项复习(一)扩展欧几里得算法(exgcd)

    简介 扩展欧几里得算法(简称扩欧,exgcd),用来求下列方程的一组解: \[ax+by=(a,b) \] 算法介绍 1. 裴蜀定理 裴蜀定理(Bézout's lemma):若 \(a\in \ma ...

  7. ORM执行原生SQL语句、双下划线数据查询、ORM外键字段的创建、外键字段的相关操作、ORM跨表查询、基于对象的跨表查询、基于双下划线的跨表查询、进阶查询操作

    今日内容 ORM执行SQL语句 有时候ROM的操作效率可能偏低 我们是可以自己编写sql的 方式1: models.User.objects.raw('select * from app01_user ...

  8. JS逆向之补环境过瑞数详解

    JS逆向之补环境过瑞数详解 "瑞数" 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数 ...

  9. DDL_操作数据库_修改&删除&使用

    DDL_操作数据库_修改&删除&使用 3.U(Update) : 修改 修改数据库的字符集 alter database 数据库名称 character set 字符集名称; 4.D( ...

  10. Thread和Runnable的区别-匿名内部类方式实现线程的创建

    Thread和Runnable的区别 如果一个类继承Thread ,则不适合资源共享.但是如果实现了Runable接口的话,则很容易的实现资源共享. 总结: 实现Runnable接口比继承Thread ...